passwd コマンド

目的

ユーザーのパスワードを変更します。

構文

passwd [ -R load_module ] [  -f  |   -s  -a ] [ User ]

説明

passwd コマンドは、ユーザーのパスワードの設定と変更を行います。 このコマンドを使用して、自分のパスワードまたはほかのユーザーのパスワードを変更します。 passwd コマンドを使用して、ログイン名と関連した完全名 (gecos) と、オペレーティング・システムへのインターフェースとして使用するシェルを変更することもできます。

ユーザーの定義方法によって、そのユーザーのパスワードをローカルまたはリモートにすることができます。 ローカル・パスワードは /etc/security/passwd データベースにあります。 リモート・パスワードは、リモート・ドメインによって提供されるデータベースに保管されます。

自分のパスワードを変更するには、passwd コマンドを入力します。 passwd コマンドは、root ユーザーではないユーザーに旧パスワード (ある場合) の入力を求めるプロンプトを表示し、次に新規パスワードの入力を求めるプロンプトを 2 回表示します。(パスワードは画面には表示されません。) 新規パスワードの 2 つの入力が一致しないと、passwd コマンドは新規パスワードの入力を求めるプロンプトを再度表示します。
注: passwd コマンドは、 ローカル・パスワードおよび NIS パスワードの場合、パスワードの最初の 8 文字だけを使用します。7 ビット文字だけがパスワードでサポートされます。 このため、各国語サポート (NLS) コード・ポイントはパスワードでは許可されません。

ほかのユーザーのパスワードを変更するには、passwd コマンドとそのユーザーのログイン名 (User パラメーター) を入力します。 ほかのユーザーのパスワードの変更を許可されているのは、root ユーザーか、セキュリティー・グループのメンバーだけです。 passwd コマンドは、新規パスワードのほかにそのユーザーの旧パスワードの入力を求めるプロンプトを表示します。 ローカル・パスワードの場合、passwd コマンドは、root ユーザーに旧ユーザー・パスワードまたは root パスワードの入力を求めません。 リモート・パスワードの場合、デフォルトによって root ユーザーには旧パスワードの入力が求められ、それにより、リモート・ドメインがそのパスワードを使用するか無視するかを決定できます。 この動作を変更するには、/usr/lib/security/methods.cfg ファイルの rootrequiresopw オプションを参照してください。passwd コマンドは、root ユーザーにはパスワード制限を強制しません。

/etc/passwd ファイルは、完全名と、使用するシェルのパス名を記録します。 記録された名前を変更するには、passwd -f コマンドを入力します。 ログイン・シェルを変更するには、passwd -s コマンドを入力します。

/etc/security/user 構成ファイルのパスワード制限に従って、ローカルに定義されたパスワードを作成します。 このファイルには、以下の制限が入っています。
項目 説明
dictionlist パスワードが変更されたときに検査されるディクショナリー・ファイルのリストを指定します。
histexpire ユーザーがパスワードを再利用できない期間の値を週単位で指定します。
histsize ユーザーが再利用できない以前のパスワードの数を指定します。
maxage パスワードの最長経過日数を指定します。 パスワードは、週単位で計測する指定された期間経過後に変更しなくてはなりません。
maxexpired ユーザーがパスワードを変更できる期間で、maxage を超える期間の最大値を週単位で指定します。
maxrepeats ある 1 つの文字をパスワード内で使用できる最大回数を指定します。
minalpha 英字の最小数を指定します。
minother その他の文字の最小数を指定します。
minlen 文字の最小数を指定します。
注: この値は、minalphaminother の値を足したものか、または minlen の値のいずれか大きい方によって決まります。
mindiff 旧パスワードになく、新規パスワードにある文字の最小数を指定します。
注: この制限では位置は関係ありません。 新規パスワードが abcd で旧パスワードが edcb の場合、異なる文字数は 1 です。
minage パスワードを変更できる最低経過日数を指定します。 パスワードは、最低期間が経過するまで変更できません。 この値は週単位で計測します。
minloweralpha 英小文字の最小数を指定します。
minupperalpha 英大文字の最小数を指定します。
mindigit 数字の最小桁数を指定します。
minspecialchar 特殊文字の最小数を指定します。
pwdchecks パスワードが変更されると呼び出される外部パスワード制限メソッドのリストを指定します。

root ユーザーが NOCHECK 属性を /etc/security/passwd ファイルのフラグ・エントリーに追加した場合は、パスワードがこれらの制限を満たしていなくてもかまいません。 また、root ユーザーは、以下のパスワード制限に従わずにほかのユーザーに新規パスワードを割り当てることができます。

root ユーザーが ADMIN 属性をフラグ・エントリーに追加するか、 または /etc/passwd ファイルの password フィールドに * (アスタリスク) が含まれている場合は、 root ユーザーだけがパスワードを変更できます。 また、/etc/passwdpassword フィールドに ! (感嘆符) が含まれ、 かつ /etc/security/passwd ファイルの password フィールドに * が含まれる場合、root ユーザーだけがユーザーのパスワードを変更する排他的特権を持ちます。

root ユーザーがパスワードを変更すると、ADMCHG 属性が自動的に /etc/security/passwd ファイルのフラグ・エントリーに追加されます。 この場合は、次にログインするときにパスワードを変更しなくてはなりません。

/etc/security/user ファイルのユーザーの registry の値が DCE または NIS のいずれかである場合、パスワード変更は指定されたデータベースでだけ行うことができます。

ユーザーの鍵ストアが存在せず、しかもユーザーの efs_keystore_access 属性値が none でない場合、passwd コマンドはユーザー鍵ストアを作成します。 鍵ストアは、/etc/security/user ファイルにある暗号化ファイルシステム (EFS) 属性を使用して作成されます。 古いパスワードで鍵ストアを開くことができる場合は、鍵ストア・パスワードも変更されます。 つまり、ログイン・パスワードと鍵ストア・パスワードが同じ場合、passwd コマンドは両方のパスワードを変更します。 ファイルシステムが暗号化ファイルシステム (EFS) の場合は、コマンドは -a フラグが指定されている場合と同様に機能します。 -a フラグを指定した場合、パスワード変更後の EFS パスワードはユーザー・ログイン・パスワードと同期されません。 したがって、次回のログイン時に鍵ストアは自動的にはロードされません。

フラグ

項目 説明
-a すべてのモジュール (compat、LDAP、NIS、など) 内のユーザー・パスワードを変更します。
-f finger コマンドがアクセスするユーザー情報を変更します。 このフラグを使用して、/etc/passwd ファイルにフルネームを入れることができます。
-s ログイン・シェルを変更します。
-R load_module ユーザーのパスワードを変更するために使用されるロード可能 I&A モジュールを指定します。

セキュリティー

passwd コマンドは、passwd という サービス名を持つ、PAM 使用可能アプリケーションです。root ユーザーとして、/etc/security/login.cfgusw スタンザにある auth_type 属性の値を PAM_AUTH に変更すると、認証に PAM を使用するシステム全体の構成が設定されます。

PAM が使用可能であるときに使用される 認証メカニズムは、/etc/pam.conf 内の passwd サービスの 構成によって決まります。 passwd コマンドには、パスワード・モジュール・タイプ として /etc/pam.conf エントリーが必要です。 以下にリストされるのは、passwd サービスにおける /etc/pam.conf 内の推奨される構成です。
#
# AIX passwd configuration
#

passwd password required /usr/lib/security/pam_aix

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権操作を実行できます。特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. パスワードを変更するには、以下のように入力します。
    passwd
    passwd コマンドは、旧パスワードがあり、ユーザーが root 以外の場合は、旧パスワードの入力を求めるプロンプトを表示します。 旧パスワードを入力すると、新規パスワードの入力を求めるプロンプトが 2 回表示されます。
  2. /etc/passwd ファイルのフルネームを変更するには、 以下のように入力します。
    passwd  -f
    passwd コマンドは、そのユーザー ID に格納されている名前を表示します。 例えばログイン名 sam の場合、passwd コマンドは次のようなメッセージを表示します。
    sam's current gecos:
                 "Sam Smith"
    Change (yes) or no)? >
    はい (yes) の場合 Y を入力すると、passwd コマンドは新しい名前の入力を求めるプロンプトを表示します。passwd コマンドは、/etc/passwd ファイルに入力した名前を記録します。
  3. 次にログインするとき異なるシェルを使用するには、以下のように入力します。
    passwd -s
    passwd コマンドは、使用可能なシェルのパス名と、現在使用中のシェルをリストします。 次のようなプロンプトも表示します。
    Change (yes) or (no)? >
    はい (yes) の場合 Y を入力すると、passwd コマンドは使用するシェルの入力を求めるプロンプトを表示します。次にログインするとき、システムはここで指定したシェルを提供します。

ファイル

項目 説明
/usr/bin/passwd passwd コマンドが入っています。
/etc/passwd ユーザー ID、ユーザー名、ホーム・ディレクトリー、ログイン・シェル、およびフィンガー情報が入っています。
/etc/security/passwd 暗号化されたパスワードとセキュリティー情報が入っています。