Linux / コマンド / passwd - ユーザーパスワードの変更

passwdは、自分のアカウントのパスワードを対話形式で変更するコマンドです。管理者権限があれば他のアカウントのパスワードも変更できますが、対象アカウントを必ず確認する必要があります。

一般ユーザーは通常、既存のパスワードと新しいパスワードを順番に入力します。入力中に画面に文字が表示されないのは正常です。実際の検証ポリシーと保存場所は、認証の共通処理を担うPAM(Pluggable Authentication Modules)の設定や、アカウント情報の管理方式、ディストリビューションのポリシーの影響を受けます。

基本的な文法

passwd [オプション] [ユーザー]

インストールされている実装とオプションは、配布版によって異なる場合があります。man passwdで現在のシステムの説明を確認してください。

使用例

自分のパスワード変更

対話形式の案内に従って、現在のパスワードと新しいパスワードを入力します。

passwd

他のアカウントのパスワード変更

alice は例なので実在する対象アカウント名に置き換え、sudoで必要な管理権限を使う 場合だけ実行します。

sudo passwd alice

パスワードの状態確認

対象アカウントのパスワード状態や有効期間を管理権限で照会します。shadow-utilsの状態欄は、L がロック、NP がパスワードなし、P が利用可能なパスワードを示します。ただし、P だけで全サービスへのログイン成功が保証されるわけではありません。

sudo passwd -S alice

対話式変更のプロセスと確認

通常のユーザーは、自分のアカウントのパスワードを passwd で変更します。コマンドを実行すると、現在のパスワードと新しいパスワードを順番に尋ねるプロンプトが表示されることがあります。

passwd

例示画面(ディストリビューションやアカウントポリシーによって文言は異なります):

Current password:
New password:
Retype new password:
passwd: password updated successfully

パスワードを入力する際、ターミナルに文字やアスタリスクが表示されなくても正常な場合があります。実際のパスワードをコマンド引数やドキュメント例に入れないでください。管理者アカウントで他のユーザーのパスワードを変更する作業は、アカウントポリシー・監査記録に影響するため、対象名を再確認し、必要な権限でのみ実行してください。変更後は現在の管理セッションを閉じる前に、対象サービスへ別のセッションで新しい認証が成功するか確認します。パスワードを変更しても既存のセッションがすべて終了するとは限りません。

主なオプションと形式

オプション・形式 説明
-S アカウントのパスワード状態を要約します。
-l パスワード認証をロックします。他のログイン方法まで全てブロックするわけではありません。
-u 以前の値を復元してパスワードのロックを解除します。アカウントの有効期限などをすべて解除する指定ではありません。
-e パスワードを期限切れにして、次回ログイン時に変更を求めます。

使用する際の注意点

パスワードをコマンド引数に直接書かないでください。シェルの履歴やプロセスリストなどに露出する可能性があります。passwd -l はパスワード方式の認証をロックするもので、SSHキーのような他の認証手段まで必ずしも遮断するわけではありません。アカウントを完全に無効化するには、サービスや認証ポリシーも合わせて確認する必要があります。

よくある質問

パスワード入力時に何も表示されなくても、入力されていますか?

はい。セキュリティのために入力した文字やアスタリスクが表示されない場合が一般的です。入力が終わったら Enter キーを押してください。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、passwd 関連の公式ドキュメントで確認できます。