PASSWD(1)

名称
passwd, yppasswd - ユーザのパスワードを変更する

書式
passwd [-l] [user] yppasswd [-l] [-y] [-d domain] [-h host] [-o]

解説
passwd は、ユーザの local, Kerberos, NIS パスワードを変更します。 ユーザがスーパユーザでない場合、 passwd は最初に現在のパスワードを求め、 正しいパスワードが入力されない場合には処理を停止します。

新規パスワード入力時、パスワードは表示されません。 通りがかりの人にパスワードを見られることを避けるためです。 passwd は、タイプミスを検出するため、2 度新規パスワード入力を求めます。

新しいパスワードは、少なくとも 6 文字以上 (ユーザのログインクラスに対する login.conf(5) の “minpasswordlen” 設定が優先します) で、アルファベットだけにならな いようにすべきです。パスワードの最大文字数は、 _PASSWORD_LEN (現在は 128 文字) より短いことが必要です。

新規パスワードは大文字と小文字を混合して含む必要があります (ユーザのログインクラスに対して login.conf(5) の “mixpasswordcase” の設定を使用することで、上書き可能です)。 小文字だけのパスワードのみ許可可能な場合に、 小文字パスワードを許すと有用でしょう。 例えば Windows クライアントを認証するために Samba を使用する場合が、 該当します。 他のすべての場合、数字、大文字、メタ文字が推奨されます。

新しいパスワードが確認されたら passwd は新しいパスワードを Kerberos 認証ホストに伝えます。

-l  Kerberosデータベースではなく、 ローカルマシンのパスワードだけを変更します。 ローカルマシンのパスワードだけを変更する場合は、 pwd_mkdb(8) がパスワードデータベースの更新に使われます。

ローカルまたは NIS パスワードを変更する場合、 ユーザのログインクラスの “passwordtime” ケーパビリティに基づき、 次にパスワードを変更すべき日付が設定されます。

別のユーザの Kerberos パスワードを変更するには、 kinit(1) を実行してから、 passwd(1) を実行する必要があります。 スーパユーザがローカルマシンのパスワードを修正するときにかぎり、現在の パスワードの入力は不要です。

NIS との相互作用
passwd は NIS のサポートが組み込まれています。 もしユーザ名が NIS のパスワードデータベースの中にあり、 ローカルにはない場合、 passwd は自動的に “yppasswd” に切り替わります。 指定されたユーザ名がローカルのパスワードデータベースにも、 NIS のパスワードマップにも存在しない場合、 passwd はエラーを返します。

NIS のパスワードを変更するとき、非特権ユーザは 確認のために現在のパスワードの入力を求められます ( rpc.yppasswdd(8) デーモンはいかなる変更でも NIS パスワードマップに加える前に 現在のパスワードの入力を求めます)。 この制限はスーパユーザにも適用されますが、大きな例外があります。 NIS マスタサーバのスーパユーザはパスワードの確認が省略されるの です。 したがって、NIS マスタサーバのスーパユーザは、すべてのユーザの NIS パスワードを無制限に変更できます。 しかし、NIS クライアントや NIS スレーブサーバのスーパユーザは 変更にパスワードが必要です。

以下のオプションは NIS のためのものです:

-y  passwd は強制的に NIS 用になります。

-l  NIS が有効な場合に passwd を強制的にローカル用にします。 このフラグは同じログイン名で NIS のユーザと ローカルなユーザが存在するときに、 “ローカルユーザの” パスワードエントリを変更するために使われます。 例えば、システム用の bin や daemon といった “場所取り” エントリは NIS パスワードマップとローカルユーザデータベース の両方に存在することが、よくあります。 この場合デフォルトでは passwd は NIS のパスワードを変更しようとします。 NIS ではなくローカルのパスワードを変更するとき -l を使います。

-d domain
    NIS パスワードを変更するとき、ドメイン名を指定します。デフォルトで passwd は、システムのデフォルトドメイン名を使います。このフラグは主に NIS マスタサーバのスーパユーザが使用するものです。一つの NIS マスタサーバが複数のドメインを扱っている場合や、NIS マスタサーバでは ドメイン名が設定されていない (NIS サーバは必ずしもクライアントになる 必要はありません) 場合に、 passwd コマンドがどのドメインを扱うのかを指定する必要があります。

-h host
    NIS サーバの名前を指定します。このオプションを -d オプションと共に用いることで、非ローカルな NIS サーバ上の NIS パスワードを変えることが出来ます。 -d オプションでドメイン名を指定し、 NIS マスタサーバの名前が決定できな い (おそらく、ローカルのドメイン名が設定されていないため) ときには、 NIS マスタサーバは、 “localhost” であると仮定されます。 このサーバ名を -h で指定することが出来ます。指定するホスト名は NIS マスタサーバ でなくても構いません。 NIS マスターサーバー名はドメイン内の NIS (マスタもしくはスレーブ) サーバに問い合わせることで決定される ので、スレーブサーバを指定しても構いません。

-o  NIS マスタサーバにおいて、スーパユーザの確認を省略しません。 'old' モードにします。このフラグはあまり実用的ではありませんが、 パスワードのテストに使うことが出来ます。

関連ファイル
/etc/master.passwd
    パスワードのマスタファイル
/etc/passwd
    Version 7 形式のパスワードファイル
/etc/passwd.XXXXXX
    パスワード変更時に作られるテンポラリファイル
/etc/login.conf
    ログインクラスケーパビリティデータベース
/etc/auth.conf
    認証サービスの設定

関連項目
chpass(1), kerberos(1), kinit(1), login(1), login.conf(5), passwd(5), kpasswdd(8), pwd_mkdb(8), vipw(8) Robert Morris, Ken Thompson, UNIX password security.

注
yppasswd(1) は実際には passwd へのリンクです。

歴史
passwd コマンドは AT&T UNIX から登場しました。