
Linux에서/etc/passwd 파일 이해하기
소개
Linux는 누군가의 취미에서 세계 상위 100만 도메인을 실행하는 95%의 서버를 지원하는 본격적인 다중 사용자 운영 체제로 발전했습니다.
전 세계 스마트폰 5대 중 4대가 리눅스 커널(정확히 1개 수정)에서 실행됩니다.
슈퍼컴퓨터의 100%는 리눅스를 가지고 있습니다.
리눅스는 정말 매력적입니다. 이 블로그에서 우리는 리눅스의 특별한 파일에 대해 이해할 것입니다.
직접 들어가 보겠습니다.
/etc/passwd 파일이란?
/etc/passwd
는 사용자 계정 정보를 저장하는 구성 파일입니다. 사용자 이름, 사용자 ID 및 그룹 ID와 같은 정보를 포함하는 일반 텍스트 기반 파일입니다.
이 파일은 루트가 소유하고 rw-r--r-- 권한(8진수 644)을 가집니다. 따라서 모든 사용자가 파일을 읽을 수 있지만 루트 사용자 또는 sudo 권한이 있는 사용자만 파일에 쓸 수 있습니다.
그 파일을 어떻게 볼 수 있습니까?
파일의 내용을 보려면 터미널을 열고 다음을 입력하십시오.
cat /etc/passwd
이 명령의 출력은 아래 표시된 것과 유사해야 합니다.
[email protected]:~$ 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
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
daniel:x:1000:1000:Daniel Tanzer,,,:/home/daniel:/bin/bash
그 파일을 수정할 수 있습니까?
예, vim, nano 또는 emacs와 같은 text editor
를 사용하여 파일 내용을 수정할 수 있지만, 무엇을 하고 있는지 알지 못하는 한 나쁜 생각으로 간주됩니다.
파일을 수정하려면 항상 전용 명령을 사용해야 합니다. 예를 들어 시스템에 새 사용자를 추가하려고 한다고 가정해 보겠습니다. 이렇게 하려면 텍스트 편집기를 사용하여 adduser
파일을 수동으로 편집하는 대신 useradd
또는 /etc/passwd
명령을 사용해야 합니다.
/etc/passwd 파일 형식 이해
/etc/passwd
파일에는 각 사용자에 대해 하나씩 많은 줄이 있습니다. 첫 번째 줄에는 루트 사용자에 대한 정보가 포함되어 있으며 그 다음에는 시스템 사용자 계정과 일반 사용자 계정이 있습니다.
콜론(:)으로 구분된 7개의 필드가 있습니다.

1) 사용자 이름:
이것은 사용자의 login name
를 나타내는 줄의 첫 번째 필드입니다. 길이는 1~32자입니다.
2) 비밀번호 :
행의 두 번째 필드입니다. 이전 Linux 시스템에서는 사용자의 암호화된 암호가 여기에 저장되었습니다. 이제 현대 시스템에서 이 필드는 문자x
로 대체되고 암호화된 암호는 /etc/shadow
라는 파일에 저장됩니다.
필드가 비어 있으면 시스템에 로그인하는 데 암호가 필요하지 않습니다.
To change the password of any user, use passwd
command which stores the password in encrypted form in /etc/shadow
.
3) 사용자 ID(UID):
행의 세 번째 필드입니다. 여기에는 운영 체제에서 사용자를 참조하는 데 사용하는 사용자의 고유 식별자가 포함됩니다.
UID 0
는 루트 사용자용으로 예약되어 있습니다.UID 1-99
는 미리 정의된 다른 계정용으로 예약되어 있습니다.UID 100-999
는 시스템 계정용으로 예약되어 있습니다.UID above 999
는 일반 사용자 계정용입니다.
4) 그룹 아이디(GID):
이것은 한 줄의 네 번째 필드입니다. 사용자primary group
를 결정합니다. 사용자는 Linux에서 둘 이상의 그룹에 속할 수 있습니다. 사용자가 속한 그룹의 전체 목록을 얻으려면 다음 명령을 입력하십시오.
groups <user_name>
출력의 첫 번째 그룹은 primary group
이고 나머지는 secondary groups
입니다.
5) 게코스 :
이것은 한 줄의 다섯 번째 필드입니다. 여기에는 다음을 포함하여 사용자에 대한 쉼표로 구분된 정보가 포함됩니다.
파일의 내용을 보려면 터미널을 열고 다음을 입력하십시오.
cat /etc/passwd
이 명령의 출력은 아래 표시된 것과 유사해야 합니다.
[email protected]:~$ 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
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
daniel:x:1000:1000:Daniel Tanzer,,,:/home/daniel:/bin/bash
그 파일을 수정할 수 있습니까?
예, vim, nano 또는 emacs와 같은 text editor
를 사용하여 파일 내용을 수정할 수 있지만, 무엇을 하고 있는지 알지 못하는 한 나쁜 생각으로 간주됩니다.
파일을 수정하려면 항상 전용 명령을 사용해야 합니다. 예를 들어 시스템에 새 사용자를 추가하려고 한다고 가정해 보겠습니다. 이렇게 하려면 텍스트 편집기를 사용하여 adduser
파일을 수동으로 편집하는 대신 useradd
또는 /etc/passwd
명령을 사용해야 합니다.
/etc/passwd 파일 형식 이해
/etc/passwd
파일에는 각 사용자에 대해 하나씩 많은 줄이 있습니다. 첫 번째 줄에는 루트 사용자에 대한 정보가 포함되어 있으며 그 다음에는 시스템 사용자 계정과 일반 사용자 계정이 있습니다.
콜론(:)으로 구분된 7개의 필드가 있습니다.

1) 사용자 이름:
이것은 사용자의 login name
를 나타내는 줄의 첫 번째 필드입니다. 길이는 1~32자입니다.
2) 비밀번호 :
행의 두 번째 필드입니다. 이전 Linux 시스템에서는 사용자의 암호화된 암호가 여기에 저장되었습니다. 이제 현대 시스템에서 이 필드는 문자x
로 대체되고 암호화된 암호는 /etc/shadow
라는 파일에 저장됩니다.
필드가 비어 있으면 시스템에 로그인하는 데 암호가 필요하지 않습니다.
To change the password of any user, use passwd
command which stores the password in encrypted form in /etc/shadow
.
3) 사용자 ID(UID):
행의 세 번째 필드입니다. 여기에는 운영 체제에서 사용자를 참조하는 데 사용하는 사용자의 고유 식별자가 포함됩니다.
UID 0
는 루트 사용자용으로 예약되어 있습니다.UID 1-99
는 미리 정의된 다른 계정용으로 예약되어 있습니다.UID 100-999
는 시스템 계정용으로 예약되어 있습니다.UID above 999
는 일반 사용자 계정용입니다.
4) 그룹 아이디(GID):
이것은 한 줄의 네 번째 필드입니다. 사용자primary group
를 결정합니다. 사용자는 Linux에서 둘 이상의 그룹에 속할 수 있습니다. 사용자가 속한 그룹의 전체 목록을 얻으려면 다음 명령을 입력하십시오.
groups <user_name>
출력의 첫 번째 그룹은 primary group
이고 나머지는 secondary groups
입니다.
5) 게코스 :
이것은 한 줄의 다섯 번째 필드입니다. 여기에는 다음을 포함하여 사용자에 대한 쉼표로 구분된 정보가 포함됩니다.
/etc/passwd
파일에는 각 사용자에 대해 하나씩 많은 줄이 있습니다. 첫 번째 줄에는 루트 사용자에 대한 정보가 포함되어 있으며 그 다음에는 시스템 사용자 계정과 일반 사용자 계정이 있습니다.콜론(:)으로 구분된 7개의 필드가 있습니다.

1) 사용자 이름:
이것은 사용자의
login name
를 나타내는 줄의 첫 번째 필드입니다. 길이는 1~32자입니다.2) 비밀번호 :
행의 두 번째 필드입니다. 이전 Linux 시스템에서는 사용자의 암호화된 암호가 여기에 저장되었습니다. 이제 현대 시스템에서 이 필드는 문자
x
로 대체되고 암호화된 암호는 /etc/shadow
라는 파일에 저장됩니다.필드가 비어 있으면 시스템에 로그인하는 데 암호가 필요하지 않습니다.
To change the password of any user, use
passwd
command which stores the password in encrypted form in/etc/shadow
.
3) 사용자 ID(UID):
행의 세 번째 필드입니다. 여기에는 운영 체제에서 사용자를 참조하는 데 사용하는 사용자의 고유 식별자가 포함됩니다.
UID 0
는 루트 사용자용으로 예약되어 있습니다.UID 1-99
는 미리 정의된 다른 계정용으로 예약되어 있습니다.UID 100-999
는 시스템 계정용으로 예약되어 있습니다.UID above 999
는 일반 사용자 계정용입니다.4) 그룹 아이디(GID):
이것은 한 줄의 네 번째 필드입니다. 사용자
primary group
를 결정합니다. 사용자는 Linux에서 둘 이상의 그룹에 속할 수 있습니다. 사용자가 속한 그룹의 전체 목록을 얻으려면 다음 명령을 입력하십시오.groups <user_name>
출력의 첫 번째 그룹은
primary group
이고 나머지는 secondary groups
입니다.5) 게코스 :
이것은 한 줄의 다섯 번째 필드입니다. 여기에는 다음을 포함하여 사용자에 대한 쉼표로 구분된 정보가 포함됩니다.
직장 전화번호 등
6) 홈 디렉토리 :
이것은 사용자의 홈 디렉토리에 대한 경로를 포함하는 줄의 여섯 번째 필드입니다. 기본적으로 이 경로는
/home
디렉토리 아래에 있으며 사용자의 이름을 따서 명명됩니다. 예를 들어 사용자 이름이 daniel
인 경우 홈 디렉토리는 /home/daniel
입니다.7) 로그인 쉘:
이것은 행의 일곱 번째이자 마지막 필드입니다. 여기에는 사용자의 기본 로그인 셸에 대한 경로가 포함됩니다. 대부분의 배포판에서
/bin/bash
경로가 있는 bash 입니다.It is not necessary to for it to be a shell. For example, system administrators can use
nologin shell
having path/sbin/nologin
. So, if a user tries to login to an account with nologin shell, the nologin shell closes the connection.
블로그용입니다. 파일 형식
/etc/passwd
을 이해하셨기를 바랍니다.읽어 주셔서 감사합니다!