Scroll to navigation

PASSWD(5) Linux Programmer's Manual 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

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

ユーザーのログイン名。大文字を含まないすべきである。
暗号化されたユーザーのパスワード、アスタリスク (*)、文字 'x' の いずれかである ('x' の説明については pwconv(8) を参照)。
特権を持つ root ログインアカウント (スーパーユーザー) は ユーザー ID 0 である。
このユーザーのプライマリグループ ID の番号。 (このユーザーの追加のグループはシステムのグループ定義ファイル で定義される。 group(5) を参照)。
本欄 (「コメント欄」と呼ばれることもある) は省略可能で、情報提供の 目的のみに使われる。ユーザーのフルネームを設定することが多い。 (finger(1) などの) いくつかのプログラムでは、このフィールドの 情報が表示される。
GECOS は General Electric Comprehensive Operating System を意味しており、 GE 社の大規模システム部門が Honeywell 社に売却された際に GCOS へと変更 された。Dennis Ritchie 氏は次のように言っている:「時々プリンタ出力や、 バッチジョブを GCOS マシンに送ったりするが、パスワードファイルの gcos 欄は $IDENT カード用の情報を 隠しておくための場所なんだ。 まるっきりエレガントじゃない。」
ユーザーのホームディレクトリ、つまりログイン直後のそのユーザーの 初期ディレクトリである。 このフィールドの値は HOME 環境変数に設定される。
ログイン時に動くプログラム名 (空欄の場合 /bin/sh が使われる)。 存在しない実行ファイルが設定された場合、そのユーザーは login(1) による システムへのログインができなくなる。 このフィールドの値は SHELL 環境変数の値に設定される。

ファイル

/etc/passwd

注意

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

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

関連項目

chfn(1), chsh(1), login(1), passwd(1), su(1), crypt(3), getpwent(3), getpwnam(3), group(5), shadow(5), vipw(8)

この文書について

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

2018-04-30 Linux