Linux에서/etc/passwd 파일 이해하기

Linux에서/etc/passwd 파일 이해하기

2022-10-19 last update

5 minutes reading beginners cloud devops linux

소개



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) 게코스 :



    이것은 한 줄의 다섯 번째 필드입니다. 여기에는 다음을 포함하여 사용자에 대한 쉼표로 구분된 정보가 포함됩니다.
  • 성명
  • 방 번호

  • 직장 전화번호 등

  • 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을 이해하셨기를 바랍니다.

    읽어 주셔서 감사합니다!