/etc/passwd
概要
/etc/passwdとは、LinuxなどのUNIX系OSで、ユーザーのパスワードや属性情報を保存したファイル。現代ではパスワード情報は記載せずに /etc/shadow (シャドウファイル)に分離する運用が一般的となっている。テキスト形式の設定ファイルの一つで、各ユーザーにつき1行ずつ情報が記録される。各行は項目が「:」(コロン)で区切られ、一般的な書式では7つの項目が連なっている。
先頭から順に、ユーザー名、ハッシュ化されたパスワード、ユーザーID(UID)、グループID(GID)、任意のコメント、ホームディレクトリ、ログインシェルとなっており、「john:$1$fL7g$5f4dcc3b5aa765d61d8327deb882cf99:500:501::/home/john:/bin/bash」のようになる。
パスワードはそのまま記載すると簡単に盗み見られてしまうため、元の値を割り出せないように乱雑化するハッシュ関数(一方向性関数)の計算結果(ハッシュ値)のみを記載する。ハッシュ値から元の文字列を逆算することはできないが、同じ値からは同じハッシュ値が得られるため、ログイン時に入力したパスワードが登録されたものに等しいかはハッシュ値同士を比較することで簡単に検証できる。
/etc/passwdはユーザーに関する設定情報が記載されているため、どのユーザーでも読み込めるように運用されるが、パスワードのハッシュ値から総当りで元の値を推測する攻撃手法が知られるようになったため、パスワード情報のみを /etc/shadow という別のファイルに分離し、管理者(rootユーザーなど)しかアクセスできないようにする「パスワードのシャドウ化」が一般化している。その場合は第2項目がパスワード情報に代えて「x」などと記載されている。
(2022.1.18更新)