/etc/passwd
読み:エトセ-パスワード
外語:/etc/passwd

 UNIXオペレーティングシステム(OS)で、符号化されたパスワードなどの情報を格納するために使われていたファイル。
目次

概要
 ログイン名、パスワード、UIDGIDホームディレクトリ、ログイン時に起動するシェルなどのパス、といった各種の情報が、一人一行でコロン(:)区切りで格納されている。
 このファイルは誰でも読むことができる(パーミッションは例えば644)。

特徴
 : で区切られた書式例は次の通り。rootと、一般ユーザーhogeでの例を示す。
 root:x:0:0:root:/root:/bin/bash
 hoge:x:1000:1000:hoge,,,:/home/hoge:/bin/bash
 各項目の意味は次の通り。rootとhogeの例を併記する。
  1. ユーザーID (root や hoge)
  2. パスワード (未使用のため x や * が書かれている)
  3. UID (0や1000)
  4. GID (0や1000)
  5. ユーザーのフルネームや説明 (root や hoge,,,)
  6. ホームディレクトリー (/root や /home/hoge)
  7. シェル (/bin/bash)
 2番目はかつてはパスワードが書かれていたが、セキュリティを考慮した現在は別の場所に書くようになった。これをシャドウパスワードという。

補足

パスワードの符号化
 誰でも読めるファイルであるため、ファイル内のパスワードは符号化されている。
 パスワードの符号化には伝統的にDESが使用されていた。しかし、米国の輸出制限を嫌い、FreeBSDのようにMD5などのハッシュ関数が使われているシステムもある。

シャドウファイル
 符号化されているとはいえ、現代のようにコンピューターが高性能化すると、ブルートフォースアタック(総当たり攻撃)でパスワードを解読される危険性がある。そこで現在ではセキュリティのため、/etc/passwdのパスワード部分は削除して格納するのが常識である。
 パスワードが格納されたファイルは、同じ書式で別名ファイルとして用意し、こちらはroot以外は参照できないようにパーミッションが設定される。このようなファイルをシャドウファイルという。
 シャドウファイルは、BSDでは/etc/master.passwdだが、System V系UNIXやLinuxでは/etc/shadowとなっている。
 それでも/etc/passwdを残すのは、このファイルのパスワード部分以外を使用するプログラムが存在するためである。

再検索