linuxシステムにおける/etc/passwdおよび/etc/shadowファイルの詳細

8964 ワード

転載先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ファイルのログイン名と一致するユーザーアカウントである
「≪パスワード|Password|ldap≫」フィールドには、暗号化されたユーザー・パスワードの文字が格納されます.
空の場合、対応するユーザーにはパスワードがなく、ログイン時にパスワードは必要ありません.
アスタリスクはアカウントがロックされていることを表します.
二重感嘆符はこのパスワードが期限切れになったことを示しています. $6$で始まり、SHA-512で暗号化されていることを示している. $1$はMD 5で暗号化されていることを示している. $2$はBlowfishで暗号化されている. $5$はSHA-256で暗号化されている.

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

/etc/groupファイルの紹介


Linux/etc/groupファイルと/etc/passwdおよび/etc/shadowファイルは、システム管理者がユーザーおよびユーザーグループを管理する際に関連するファイルです.linux/etc/groupファイルは、システム管理者がユーザーとユーザーグループを管理するファイルであり、linuxユーザーグループのすべての情報は/etc/groupファイルに格納されます.ある共通の特徴を持つユーザが集合するのがユーザグループである.ユーザグループ(Group)プロファイルには、主に/etc/groupおよび/etc/gshadowがあり、ここで/etc/gshadowは/etc/groupの暗号化情報ファイルである.
ユーザをグループ化することはLinuxシステムにおいてユーザを管理しアクセス権を制御する手段である.各ユーザーはユーザーグループに属します.1つのグループに複数のユーザーが存在してもよく、1つのユーザーが異なるグループに属してもよい.1人のユーザが同時に複数のグループのメンバーである場合、/etc/passwdファイルに記録されるのは、ユーザが属するプライマリグループ、すなわちログイン時に属するデフォルトグループであり、他のグループを付加グループと呼ぶ.
ユーザーグループのすべての情報は/etc/groupファイルに保存されます.このファイルのフォーマットは、次のようにいくつかのフィールドをコロン(:)で区切っています.
≪グループ名|Group Name|ldap≫:≪パスワード|Password|ldap≫:≪グループ識別番号|Group Identification Number|ldap≫:≪グループ内のユーザー・リスト|Group in User List|ldap≫
具体的な説明:グループ名:グループ名はユーザーグループの名前で、アルファベットまたは数字で構成されています./etc/passwdのログイン名と同様に、グループ名を繰り返すべきではありません.≪パスワード|Password|ldap≫:パスワード・フィールドには、ユーザー・グループが暗号化したパスワード・ワードが格納されます.一般的なLinuxシステムのユーザーグループにはパスワードがありません.つまり、このフィールドは一般的に空か、xです.≪グループ識別番号|Group Identification Number|emdw≫:グループ識別番号は、ユーザー識別番号と同様の整数であり、システム内でグループを識別するために使用されます.別名GID.
≪グループ内のユーザー・リスト|User List in Group|ldap≫:このグループに属するすべてのユーザーのリストで、異なるユーザー間でカンマ(,)で区切られます.このユーザグループは、ユーザのプライマリグループであるか、追加グループであるかのいずれかである.
使用例:
[root@localhost test6]# cat /etc/group
root:x:0:root,linuxsir
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
root:x:0:root,linuxsirを例にとると、ユーザーグループroot,xはパスワードセグメントであり、パスワードが設定されていないことを示し、GIDは0であり、rootユーザーグループの下にはroot,linuxsirおよびGIDが0の他のユーザーが含まれている.