PASSWD(5)

名前
passwd - パスワードファイル

説明
/etc/passwd ファイルは、そのシステムのユーザのログインアカウントリス トを記述したテキストファイルである。パスワードファイルの読み出し許可は 全ユーザーに対して与えるが(ls(1) 等の多くのユーティリティではユーザー ID をユーザー名に 対応させるのに passwd ファイルを使用する)、書き込 み許可はスーパーユーザーにのみ与えるようにすべきである。

古き良き時代には、この全ユーザーに対する読み取り許可は 特別な問題を起こ さなかった。誰でも暗号化されたパスワードを 読むことが出来たが、上手に選 ばれたパスワードを破るのには 当時のハードウェアの速度はあまりに遅かった し、それに加えて 友好的なユーザー社会であることを基本的な前提としていた。 最近では多くの人が、何らかのバージョンの shadow password suite (シャドウ・パスワード機能を実現するためのプログラム群) を動かしている。 その場合 /etc/passwd ファイルのパスワード欄には 'x' 文字が設定され、暗号化されたパスワードは /etc/shadow ファイルに保持される。 /etc/shadow ファイルはスーパー ユーザーだけが読み出すことができる。

/etc/passwd と /etc/shadow のどちらの場合でも暗号化パスワードが 空文字列の場合、パスワードの問い合わせなしでのログインが許可される。 この機能は、アプリケーションで意図的に無効されたり、 設定可能 (例えば pam_unix.so の "nullok" や "nonull" 引き数など) になっていたりする場合がある点に注意すること。

/etc/passwd の暗号化パスワードが "*NP*" (クォートはなし) の場合、 shadow レコードを NIS+ サーバから取得することを意味する。

shadow password が使われているかどうかにはよらず、多くのシステム管理者は、 暗号化パスワード欄にアスタリスク (*) を設定することで、そのユーザーが パスワードでの認証が受けられないようにしている (下記の「注意」の項を参照)。

新しいユーザーを登録する場合には、パスワード欄にアスタリスク (*) を設定しておき、 passwd(1) コマンドにより設定を行うようにすること。

ファイルの 1 行は 1 ユーザの情報を表し、 コロン区切りの 7 つの項目を含む。

    name:password:UID:GID:GECOS:directory:shell

各フィールドは以下の通りである:

name
    ユーザーのログイン名。大文字を含まないすべきである。

password
    暗号化されたユーザのパスワード、アスタリスク (*)、文字 'x' の いずれかである ('x' の説明については pwconv(8) を参照)。

UID 特権を持つ root ログインアカウント (スーパーユーザ) は ユーザ ID 0 である。

GID このユーザのプライマリグループ ID の番号。 (このユーザの追加のグループはシステムのグループ定義ファイル で定義される。 group(5) を参照)。

GECOS
    本欄 (「コメント欄」と呼ばれることもある) は省略可能で、情報提供の 目的のみに使われる。ユーザーのフルネームを設定することが多い。 (finger(1) などの) いくつかのプログラムでは、このフィールドの 情報が表示される。

    GECOS は General Electric Comprehensive Operating System を意味しており、 GE 社の大規模システム部門が Honeywell 社に売却された際に GCOS へと変更 された。Dennis Ritchie 氏は次のように言っている:「時々プリンタ出力や、 バッチジョブを GCOS マシンに送ったりするが、パスワードファイルの gcos 欄は $IDENT カード用の情報を 隠しておくための場所なんだ。 まるっきりエレガントじゃない。」

directory
    ユーザのホームディレクトリ、つまりログイン直後のそのユーザの 初期ディレクトリである。 このフィールドの値は HOME 環境変数に設定される。

shell
    ログイン時に動くプログラム名 (空欄の場合 /bin/sh が使われる)。 存在しない実行ファイルが設定された場合、そのユーザは login(1) による システムへのログインができなくなる。 このフィールドの値は SHELL 環境変数の値に設定される。

ファイル
/etc/passwd

注意
ユーザーグループを作りたい場合には、そのグループが /etc/group の中に 定義されていなければならない。そうしないとグループを作ったことにはならない。

暗号化パスワードとしてアスタリスク (*) を設定すると、 login(1) を 使ってのログインができなくなるが、 rlogin(1) ではまだログインができるし、 rsh(1), cron(8), at(1) やメールのフィルタ等を使い、現存するプロセスを 実行させたり、新たなプロセスを起動したりすることができる。 使用する shell の欄を、単に変更することでアカウントを 使えないようにする のも同様の結果となる。その場合にはさらに su(1) も有効なまま残ってしまう。

関連項目
login(1), passwd(1), su(1), getpwent(3), getpwnam(3), crypt(3), group(5), shadow(5)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。