/etc/passwdおよび/etc/shadowファイルの詳細

6715 ワード


ちょうどlinuxを学んで、ユーザーとグループの関連する3つのファイルに対して理解するのがはっきりしないで、1篇の文章を転載してノートとします

出典:https://blog.csdn.net/yaofeino1/article/details/54616440


linuxオペレーティングシステムでは、/etc/passwdファイルの各ユーザーに対応するレコード行があり、このユーザーの基本プロパティを記録しています.このファイルはすべてのユーザーに読み取り可能です.
  一方/etc/shadowファイルは彼の名前のようにpasswdファイルの影であり、/etc/shadowファイルの記録行は/etc/passwdの1つに対応し、pwconvコマンドによって/etc/passwdのデータに基づいて自動的に生成されます.ただし、/etc/shadowファイルは、システム管理者のみが変更および表示できます.

/etc/passwdファイルの紹介


まず、コマンドラインcat /etc/passwdによって/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
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false
dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false
avahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
kernoops:x:106:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
rtkit:x:107:114:RealtimeKit,,,:/proc:/bin/false
saned:x:108:115::/home/saned:/bin/false
whoopsie:x:109:116::/nonexistent:/bin/false
speech-dispatcher:x:110:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
avahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
lightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/false
hplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/false
pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
yaofei:x:1000:1000:ubuntu14.04,,,:/home/yaofei:/bin/bash
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:117:125:MySQL Server,,,:/nonexistent:/bin/false

ファイルから、/etc/passwdの1行のレコードは1人のユーザーに対応し、各行のレコードはコロン(:)で7つのフィールドに区切られ、そのフォーマットと具体的な意味は以下の通りです.
ユーザ名:パスワード:ユーザ識別番号:グループ識別番号:注釈説明:ホームディレクトリ:ログインShell
  • ユーザー名(login_name):ユーザーアカウントを表す文字列です.通常、長さは8文字を超えず、大文字/小文字および/または数字で構成されます.ここでは区切り記号であるため、ログイン名にはコロン(:)は使用できません.互換性のため、ログイン名にポイント文字(.)を含まないほうがいいです.ハイフネーション(-)とプラス記号(+)の先頭は使用しません.
  • パスワード(passwd):一部のシステムでは、暗号化されたユーザーパスワードワードが格納されています.このフィールドに格納されているのは、ユーザーパスワードの暗号化列であり、明文ではありませんが、/etc/passwdファイルはすべてのユーザーに対して読み取り可能であるため、セキュリティ上の危険性があります.そのため、現在、多くのLinuxシステム(SVR 4など)はshadow技術を使用して、本物の暗号化されたユーザーパスワードワードを/etc/shadowファイルに格納し、/etc/passwdファイルのパスワードフィールドには「x」や「*」などの特殊な文字しか格納していない.
  • ユーザ識別番号(UID):整数であり、システム内部でユーザを識別するために使用される.一般的には、ユーザー名に対応しています.いくつかのユーザ名に対応するユーザ識別番号が同じである場合、システム内では同じユーザと見なされますが、パスワード、ホームディレクトリ、ログインシェルなどが異なります.値範囲は0~65535です.0はスーパーユーザーrootの識別番号であり、1-99はシステムによって保持され、管理アカウントとして一般ユーザーの識別番号は100から始まる.Linuxシステムでは、この限界は500です.
  • グループ識別番号(GID):フィールドには、ユーザが属するユーザグループが記録される./etc/groupファイルのレコードに対応します.
  • 注釈記述(users):フィールドには、ユーザの実際の名前、電話番号、アドレスなど、ユーザの個人的な状況が記録されており、このフィールドには実際の用途はありません.異なるLinuxシステムでは、このフィールドのフォーマットは統一されていません.多くのLinuxシステムでは、fingerコマンドの出力として使用される任意の注釈記述文字がこのフィールドに格納されています.
  • ホーム(home_directory):システムにログインした後のユーザーのホームワーキングディレクトリです.ほとんどのシステムでは、各ユーザのホームディレクトリは同じ特定のディレクトリの下に組織され、ユーザのホームディレクトリの名前はそのユーザのログイン名である.各ユーザは自分のホームディレクトリに対して読み取り、書き込み、実行(検索)権限を持ち、他のユーザはこのディレクトリへのアクセス権限を状況に応じて設定する.
  • ログインShell(Shell):ユーザーがログインした後、ユーザーの操作をカーネルに伝えるプロセスを開始します.このプロセスは、ユーザーがシステムにログインした後に実行するコマンド解釈器または特定のプログラム、すなわちShellです.ShellはユーザとLinuxシステムとの間のインタフェースである.LinuxのShellにはいろいろな種類があり、それぞれに特徴があります.よく使われるのは、sh(BourneShell)、csh(CShell)、ksh(KornShell)、tcsh(TENEX/TOPS-20 typeCShell)、bash(BourneAgainShell)などです.システム管理者は、システムの状況とユーザーの習慣に基づいて、ユーザーにシェルを指定できます.Shellを指定しない場合、システムはshをデフォルトのログインShellとして使用します.すなわち、このフィールドの値は/bin/shです. 

  • /etc/shadowファイルの紹介


    /etc/shadowファイルフォーマットは/etc/passwdファイルフォーマットと同様に、フィールド間に「:」で区切られたいくつかのフィールドで構成されています.コマンドライン入力sudo cat /etc/shadowを使用して、ファイルの内容を表示します.
    root:!:17043:0:99999:7:::
    daemon:*:16652:0:99999:7:::
    bin:*:16652:0:99999:7:::
    sys:*:16652:0:99999:7:::
    sync:*:16652:0:99999:7:::
    games:*:16652:0:99999:7:::
    man:*:16652:0:99999:7:::
    lp:*:16652:0:99999:7:::
    mail:*:16652:0:99999:7:::
    news:*:16652:0:99999:7:::
    uucp:*:16652:0:99999:7:::
    proxy:*:16652:0:99999:7:::
    www-data:*:16652:0:99999:7:::
    backup:*:16652:0:99999:7:::
    list:*:16652:0:99999:7:::
    irc:*:16652:0:99999:7:::
    gnats:*:16652:0:99999:7:::
    nobody:*:16652:0:99999:7:::
    libuuid:!:16652:0:99999:7:::
    syslog:*:16652:0:99999:7:::
    messagebus:*:16652:0:99999:7:::
    usbmux:*:16652:0:99999:7:::
    dnsmasq:*:16652:0:99999:7:::
    avahi-autoipd:*:16652:0:99999:7:::
    kernoops:*:16652:0:99999:7:::
    rtkit:*:16652:0:99999:7:::
    saned:*:16652:0:99999:7:::
    whoopsie:*:16652:0:99999:7:::
    speech-dispatcher:!:16652:0:99999:7:::
    avahi:*:16652:0:99999:7:::
    lightdm:*:16652:0:99999:7:::
    colord:*:16652:0:99999:7:::
    hplip:*:16652:0:99999:7:::
    pulse:*:16652:0:99999:7:::
    yaofei:$1$5M0Rbozg$1fWsJaQB.TFAL24b96xi41:17043:0:99999:7:::
    sshd:*:17043:0:99999:7:::
    mysql:!:17048:0:99999:7:::

    ファイル内のフィールドの主な意味は、ログイン名:暗号化パスワード:最後の変更時間:最小時間間隔:最大時間間隔:警告時間:非アクティブ時間:失効時間:フラグ
  • 「ログイン名」は、/etc/passwdファイルのログイン名と一致するユーザアカウント
  • である.
  • 「パスワード」フィールドには、暗号化されたユーザーパスワードワードが格納されます.
  • が空の場合、対応するユーザにはパスワードがなく、ログイン時にパスワードは必要ありません.
  • 星号はアカウントがロックされていることを表します.
  • 双嘆号はこのパスワードが期限切れになったことを示しています.
  • $6$で始まり、SHA-512で暗号化されていることを示している.
  • $1$はMD 5で暗号化されていることを示している.
  • $2$はBlowfishで暗号化されている.
  • $5$はSHA-256で暗号化されている.

  • 「最終変更時間」は、ある時点からユーザが最後にパスワードを変更した時点までの日数を表す.時間の起点は異なるシステムに対して異なる可能性があります.例えばSCOLinuxでは、この時間起点は1970年1月1日である.
  • 「最小間隔」は、パスワードを2回変更するのに必要な最小日数を意味します.
  • 「最大間隔」とは、パスワードが有効に保たれている最大日数を意味します.
  • 「警告時間」フィールドは、システムからユーザパスワードの正式な失効を警告するまでの日数を表す.
  • 「非活動時間」は、ユーザーが活動にログインしていないが、アカウントが有効な最大日数を維持できることを示す.
  • 「失効時間」フィールドは絶対日数を与え、このフィールドを使用すると、対応するアカウントの生存期間を与えます.満期になると、このアカウントは合法的なアカウントではなく、ログインにも使用できません.