리눅스에서 사용자 관리하는 방법
리눅스에서 사용자를 관리하는 방법에 대해서 알아보겠다.
참고로 명령어를 수행한 후에는 사용자 정보가 있는 /etc/passwd와 그룹정보가 있는 /etc/group을 항상 확인해야 한다.
또한 root권한을 가지고 있어야 사용자를 관리할 수 있다.
사용자 추가
리눅스에서는 adduser를 사용하여 새로운 사용자를 추가할 수 있다.
adduser newuser2
## 출력
Adding user `newuser2' ...
Adding new group `newuser2' (1001) ... # 그룹을 지정하지 않더라도 사용자 대응하는 그룹이 자동으로 생성된다.
Adding new user `newuser2' (1001) with group `newuser2' ...
Creating home directory `/home/newuser2' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for newuser2
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
....
adduser로 새로운 사용자 이름을 입력하면 이어서 비밀번호와 부가 정보를 입력받게 된다.
adduser 명령어에는 마찬가지로 여러 옵션이 존재하는데 그 중에서 몇가지 중요한 옵션을 살표보면 다음과 같다.
adduser --uid 1111 newuser2 # newuser2 사용자를 생성하면서, 사용자 ID를 1111 지정한다.
adduser --gid 1000 newuser3 # newuser3 사용자를 생성하면서, 그룹 ID가 1000인 그룹에 newuser3 사용자를 포함시킨다.
adduser --home /newhome newuser4 # newuser4 사용자를 생성하면서, 홈 디렉터리를 /newhome으로 지정한다.
adduser --shell /bin/csh newuser5 # newuser5 사용자를 생성하면서, 기본 셸을 /bin/csh로 지정
cat /etc/passwd | grep ictman # 생성된 사용자의 정보를 확인하는 명령어
## 사용자 정보 출력
ictman:x:1002:1002:,,,:/home/ictman:/bin/bash
[사용자 정보 출력내용 설명]
| 번호 | 값 | 설명 |
|---|---|---|
| 1 | ictman |
사용자 이름 (username) |
| 2 | x |
암호는 /etc/shadow에 저장됨을 의미 (보안을 위해 x로 대체됨) |
| 3 | 1002 |
사용자 ID (UID) – 시스템에서 이 사용자를 고유하게 식별 |
| 4 | 1002 |
기본 그룹 ID (GID) – /etc/group에 있는 그룹 ID와 연관 |
| 5 | ,,, |
GECOS 필드 – 사용자에 대한 설명 정보 (실명, 전화번호 등). 여기선 비어 있음 |
| 6 | /home/ictman |
홈 디렉토리 경로 – 로그인 시 진입하는 디렉토리 |
| 7 | /bin/bash |
로그인 시 사용할 셸 – 사용자가 명령어를 입력할 수 있는 인터페이스 |
현재 활성화된 사용자가 누구인지 확인하기 위해서 다음의 명령어를 수행한다.
whoami
# 출력
ictother
사용자 전환
사용자를 전환하기 위해서 다음의 명령어를 수행한다.
su [사용자이름] # 기본틀
su john # john으로 변경, 이전 사용자의 로그인 환경을 유지
su # 뒤에 아무것도 명시하지 않으면 su root와 동일
su - john # john의 로그인 환경까지 변경하여 전환, 이전 사용자는 로그아웃되지 않는다.
사용자 비밀번호 변경
사용자의 비밀번호는 passwd 명령어를 사용한다.
passwd newuser1 # newuser1 비밀번호를 변경
사용자 속성 변경
사용자의 그룹, 기본 셸 등을 변경은 usermod를 사용한다.
usermod --shell /bin/csh newuser1 # newuser1 사용자의 기본 셸을 /bin/csh로 변경
usermod --groups ubuntu newuser1 # newuser1 사용자의 보조그룹에 ubuntu 그룹을 추가
사용자 삭제
사용자를 삭제할 경우 userdel을 사용한다.
userdel newuser2 # newuser2 사용자를 삭제한다. 단, 홈 디렉터리는 삭제되지 않는다.
userdel -r newuser3 # newuser3 사용자를 삭제하면서 홈 디렉터리까지 삭제한다.
사용자의 암호를 주기적으로 변경하도록 설정
정보보안을 위해서 정기적으로 사용자의 비밀번호를 변경하도록 해야 하는 경우가 있다.
이런 경우를 위해서 change 명령어를 사용하면 비밀번호 사용기간을 지정할 수 있다.
chage newuser1 # newuser1 사용자의 새로운 정보를 입력받는다.
chage -l newuser1 # newuser1 사용자에 설정된 사항을 확인
chage -m 2 newuser1 # newuser1 사용자에 설정한 암호를 사용해야 하는 최소 일자(즉, 변경 후 최소 2일은 사용해야 함)
chage -M 30 newuser1 # newuser1 사용자에 설정한 암호를 사용할 수 있는 최대 일자(즉, 변경 후 최대 30일까지 사용할 수 있음)
chage -E 2023/12/12 newuser1 # newuser1 사용자에 설정한 암호가 만료되는 날짜(즉, 2023/12/12까지만 사용할 수 있음)
chage -W 10 newuser1 # newuser1 사용자에 설정한 암호가 만료되기 전에 경고하는 기간, 지정하지 않았을 경우 기본 값은 7일(즉, 암호가 만료되기 10일 전부터 경고 메시지가 나감)
chage -l ictman을 수행하면 다음의 형태로 출력된다.
chage -l ictman
# 출력
Last password change : May 28, 2025
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[ 출력 설명 ]
| 항목 | 해석 |
|---|---|
Last password changeMay 28, 2025 |
마지막으로 비밀번호를 변경한 날짜는 2025년 5월 28일이다. |
Password expiresnever |
비밀번호는 만료되지 않음. 즉, 비밀번호를 계속 바꾸지 않아도 됨. |
Password inactivenever |
비밀번호가 만료된 후에도 계정은 비활성화되지 않음. 즉, 계속 로그인 가능. |
Account expiresnever |
계정 자체의 만료일이 설정되어 있지 않음. 즉, 영구적으로 사용 가능. |
Minimum number of days between password change0 |
비밀번호를 바꾼 뒤, 즉시 다시 변경 가능함. (최소 보존일 0일) |
Maximum number of days between password change99999 |
비밀번호를 최대 99999일 동안 유지 가능. 사실상 무제한. |
Number of days of warning before password expires7 |
비밀번호 만료 7일 전에 경고 메시지가 뜬다. (만약 만료 설정 시) |
사용자가 소속된 그룹 확인
사용자가 소속된 그룹을 확인하는 경우네는 groups 명령어를 사용할 수 있다.
groups # 현재 사용자가 소속된 그룹을 보여줌
groups newuser1 # newuser1 사용자가 소속된 그룹을 보여줌
새로운 그룹을 생성
새로운 그룹을 생성할 경우 groupadd 명령어를 사용한다.
groupadd newgroup1 # newgroup1이라는 그룹을 생성
groupadd --gid 2222 newgroup2 # newgroup2이라는 그룹을 생성하면서 그룹 ID를 2222로 지정한다.
그룹의 속성 변경
그룹의 속성을 변경할 경우 groupmod 명령어를 사용한다.
groupmod --new-name mygroup1 newgroup1 # newgroup1 그룹의 이름을 mygroup1로 변경
그룹 삭제
그룹을 삭제할 경우 groupdel 명령어를 사용한다.
groupdel newgroup2 # newgroup2 그룹을 삭제(단, 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 함)
그룹 암호 설정 및 관리
그룹 암호를 설정하거나 관리하기 위해서 gpasswd 명령어를 사용한다.
gpasswd mygroup1 # mygroup1 그룹의 암호를 지정
gpasswd -A newuser1 mygroup1 # newuser1 사용자를 mygroup1 그룹의 관리자로 지정
gpasswd -a newuser4 mygroup1 # newuser4 사용자를 mygroup1 그룹의 사용자로 추가
gpasswd -d newuser4 mygroup1 # newuser4 사용자를 mygroup1 그룹의 사용자에서 제거
끝.
Leave a comment