이번 포스팅에서는 리눅스의 계정 관리에 대해 알아보도록 하겠습니다. 계정 관리는 사용자(user), 그룹(group)이라는 두가지 구성 요소로 나누어 이야기 해볼 수 있는데요. 저번 포스팅에서 살펴 봤던 리눅스 권한(Permission) 관리도 사용자, 그룹으로 관리한다는 것을 배웠습니다.
사용자(user) 관리
Linux에서는 시스템과 상호 작용하는 각 개인에게 사용자 계정을 만들어 줄 수 있습니다. useradd 명령은 새 사용자를 추가하는 데 사용되며 passwd라는 명령어로 비밀번호를 설정합니다. 이때 생성하는 user는 root유저라고 super user입니다.
그래서 리눅스에서는 크게 super user와 일반 유저가 있다고 할 수 있습니다. 보통 계정 생성시 sudo라는 명령어를 사용하는데요. 이 명칭은 슈퍼유저로서의 실행에 사용된다는 의미에서 “superuser do”에서 유래했습니다.
1. 사용자 생성/삭제 useradd, userdel
- $ sudo useradd newuser
- $ sudo passwd newuser
- $ sudo userdel newuser
2. 사용자 속성 usermod
명령을 사용하면 사용자의 홈 디렉터리나 기본 셸 변경과 같은 사용자 속성을 수정할 수 있습니다.
- $ sudo usermod -s /bin/bash newuser
- $ sudo usermod -L newuser <- 계정 잠그기
3. /etc/passwd
etc/passwd를 조회하면 아래와 같은 리눅스에서 관리하는 계정들의 정보를 볼 수 있습니다. 0~6번까지 아래 표와 같은 의미를 가지고 있습니다.
Index | Field | Description | 예시 | ||
0 | 사용자 계정 | root | |||
1 | 패스워드 | 사용자 계정의 패스워드. X로 암호화되어 표시. 패스워드는 /etc/shadow에 저장 |
x | ||
2 | UID (사용자 식별자) | 사용자의 유저 ID. | [ UID 0 : 관리자 계정(root) ] : 로그인 가능 [ UID 1 ~ 999/ 65534~ : 시스템 유저 ] : 로그인 불가능 [ UID 1000 ~ 65535 : 일반 유저 ] : 로그인 가능 |
0 | |
3 | GID (그룹 식별자) | 사용자의 그룹 ID. | 0 | ||
4 | comment | 사용자와 관련한 기타 정보. 일반적으로 사용자 이름을 나타냄 | root | ||
5 | 홈 디렉토리 | 사용자의 홈 디렉토리. | [ 관리자 계정(root) ] : /root [ 일반 사용자 ] : /home/하위 계정 |
/root | |
6 | 로그인 쉘 | 사용자가 로그인 시 사용할 쉘. 보통 사용자의 쉘은 성능이 우수한 bash쉘을 사용 |
그룹(group) 관리
그룹은 사용자들의 공통점을 바탕으로 구성합니다. 같은 그룹 권한을 가져야 하는 user들을 하나로 묶으는 의미가 있습니다. 모든 리눅스 user는 Primary 그룹을 가집니다. 그 외 다른 그룹을 여러 개 가지는 것도 가능합니다.
예를 들어, A라는 그룹과 B라는 그룹을 동시에 속해 있을 수 있습니다. 그룹에 대한 정보는 /etc/group에서 확인할 수 있습니다. 아래와 같이 0~3까지 의미는 표와 같습니다.
1. 그룹 생성/삭제 groupadd, groupdel
- $sudo groupadd newgroup
- $sudo groupdel newgroup
2. 그룹에 사용자 추가 usermod
usermod 명령을 사용하여 그룹에서 사용자를 추가하거나 제거할 수도 있습니다.
- sudo usermod -aG newgroup newuser
Index | Field | Description | 예시 |
0 | 그룹 이름 | root | |
1 | 패스워드 | 사용자 계정의 패스워드. X로 암호화되어 표시. 패스워드는 /etc/shadow에 저장 |
x |
2 | GID (그룹 식별자) | 사용자의 그룹 ID. | 0 |
4 | 그룹에 소속된 사용자 계정 | 그룹에 소속된 사용자 계정 리스트. | hpedf |
패스워드 관리
사용자의 패스워드는 /etc/passwd에서 두번째 필드에 x라고 모두 표시됩니다. x라고 저장되면 암호화된 패스워드를 /etc/shadow에 옮겨 놓습니다.
- *와 !문자는 패스워드 암호화에서 나올수없는 문자
- *는 시스템어카운트의 로그인 불가
- !는 일반유저 로그인 불가
사용자의 패스워드를 설정할 때 'passwd -e newuser' 라고 설정하면 무조건 다음 접속시 패스워드 변경하게 유도합니다.
1. 패스워드 변경 chage 명령어
비밀번호 정책은 'chage' 명령을 사용하여 비밀번호 만료와 같은 매개변수를 설정하여 정의할 수 있습니다.
- $ chage -l newuser
- $ chage -M 90 -m 0 -W 7 -I 20 newuser
2. 패스워드 락 걸기 usermod 명령
- $ usermod -L = passwd -l ← 유저 락 걸기
- $ usermod -U = passwd -u ← 유저 언락
Linux 계정 관리는 시스템 관리의 기본적인 측면이 있습니다. 사용자 및 그룹 관리를 잘 해야 시스템을 안전하고 체계적이인 서버 환경을 보장할 수 있습니다. 그리고 패스워드 정책까지 수립하면 리눅스이 보안 수준을 높일 수 있습니다.
'리눅스,네트워크' 카테고리의 다른 글
사설IP vs 공인IP 차이점 - 내 사설,공인IP 확인 방법 (1) | 2023.12.22 |
---|---|
IP주소, 서브넷마스크 없었으면 어쩔뻔? (0) | 2023.12.21 |
리눅스(Linux) 권한 관리 - Permission (0) | 2023.12.18 |
리눅스(Linux) 환경변수 설정(profile, bashrc) (2) | 2023.12.06 |
리눅스 쉘 스크립트(Shell Script) 쉬운 설명 (0) | 2023.11.07 |