리눅스의 CUI 환경에서 명령어를 통해 사용자를 관리할 때 필요한 명령어로 시스템에 등록된 사용자를 조회하고 사용자를 추가하거나 삭제할 수 있는 방법에 대해 정리했습니다.
목차
사용자 조회
/etc/passwd 에서 사용자 조회하기
1. 모든 사용자 조회 : cat /etc/passwd
모든 사용자 목록은 /etc/passwd
파일에 저장되며 cat
명령어를 이용해 파일 내용을 출력할 수 있습니다. 시스템에서만 사용하는 로그인 불가 계정을 포함한 모든 계정을 조회할 수 있으며 명령어 결과는 다음과 같습니다.
root@SUN:/home/pg# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
...
2. 관리자 계정 및 관리자가 생성한 사용자 조회 : grep /bin/bash /etc/passwd
최고 권한을 가진 사용자 및 관리자 계정으로 생성한 사용자 계정을 출력합니다.
root@SUN:/home/pg# grep /bin/bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
pg:x:1001:1001:,,,:/home/pg:/bin/bash
ubuntu:x:1002:1002:Ubuntu:/home/ubuntu:/bin/bash
/etc/passwd
파일 안의 내용 중에서 bash 쉘에 연결된 계정만 grep
명령어로 솎아내는 것이며 시스템에서만 사용하는 계정은 bash 쉘을 사용하지 않으므로 사용자 조회시 출력되지 않게 되는 것입니다.
만일 리눅스에서 다른 쉘을 사용하고 있다면 /bin/bash
대신 사용사는 쉘을 넣어 명령어를 완성하면 되겠습니다.
사용자 추가
useradd 명령어
useradd PG -d /home/PG
- 관리자 계정으로
useradd PG
를 입력하면 사용자 PG를 만듭니다. - 사용자 생성시 홈 디렉토리를 함께 추가하려면
-d
인수와 함께 사용자 디렉토리 경로를 입력합니다. - 사용자를 추가한 후 비밀번호 명령어
passwd
를 이용해passwd PG
를 입력하면 사용자 PG 계정에 대한 비밀번호를 설정할 수 있습니다.
adduser 명령어
adduser PG
- adduser 명령어는 사용자의 홈 디렉토리를 자동으로 생성하고 사용자의 프로필 및 비밀번호 생성을 한번에 할 수 있는 명령어입니다.
- 암호를 제외한 프로필 입력시 정보 입력이 불필요하다면 Ctrl + C를 눌러 과정을 취소할 수 있습니다.
root@SUN:/home/pg# adduser PG
Adding user `PG' ...
Adding new group `PG' (1001) ...
Adding new user `PG' (1001) with group `PG' ...
Creating home directory `/home/PG' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for PG
Enter the new value, or press ENTER for the default
Full Name []:
사용자 정보 수정
usermod 명령어
사용자 디렉토리 변경하기
usermod -d /home/PG-Second PG
사용자의 홈 디렉토리를 변경할 때 -d
인수 뒤에 변경할 디렉토리 경로를 입력하고 뒤에 변경을 적용할 계정명을 입력합니다. 변경할 디렉토리는 미리 생성해야 합니다.
usermod -m -d /home/PG-second PG
사용자의 새 홈 디렉터리를 생성함과 동시에 사용자 계정과 연결하고 기존 홈 디렉토리 안에 있는 폴더 및 파일을 이동합니다.
사용자 프로필 정보 변경하기
chfn PG
adduser로 사용자 생성시 입력하는 정보(Full Name, Work Phone, Room Number등)을 변경할 때는 chfn
명령어 뒤에 사용자명을 입력해 수정할 수 있습니다.
root@sun:/home/pg# chfn pg
Changing the user information for pg
Enter the new value, or press ENTER for the default
Full Name [pg]: ^C
root@sun:/home/pg# chfn pg
Changing the user information for pg
Enter the new value, or press ENTER for the default
Full Name [pg]:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
사용자명 바꾸기
usermod -l Extreme PG
사용자 PG를 Extreme 으로 이름을 변경하는 명령어로 -l
인수를 사용합니다.
사용자명을 변경했을 때 홈 디렉토리 이름은 그대로이므로 사용자명과 맞는 새로운 홈 디렉토리를 생성하는 것이 좋습니다.
사용자 UID 변경하기
usermod -u 1111 PG
uid는 고유 식별자(unique identifier)로 사용자 생성시 부여되는 번호로 파일, 프로세스등의 시스템 자원을 사용할 때 시스템에서 표현하기 위한 수단으로 사용됩니다.
uid를 의도적으로 변경하려면 -u 인수를 사용하면 되며 uid 숫자를 직접 입력해 사용자에게 지정합니다.
사용자 삭제
userdel 명령어
userdel PG
사용자를 삭제하는 명령어로 홈 디렉토리는 삭제되지 않습니다.
userdel -f PG
사용자를 강제로 삭제하는 명령어로 해당 사용자가 로그인 했을 때도 적용됩니다.
userdel -r PG
-r
인수를 사용하면 사용자의 홈 디렉토리와 메일 저장소를 사용자 계정과 함께 삭제합니다.
만일 메일함이 없다면 userdel: abc mail spool (/var/mail/abc) not found
결과가 출력될 수 있지만 사용자는 삭제됩니다.