【Linux】passwdコマンドの使い方|パスワード変更・ロック・有効期限の設定方法

Linuxサーバーを運用していると、ユーザーのパスワードを変更する機会も多いです。
セキュリティの観点から、同じパスワードを長期間使い続けるのはリスクが高く、定期的な変更が推奨されています。
また、担当者の交代や退職に伴うパスワード変更、セキュリティインシデント発生時の緊急対応など、さまざまな場面でパスワード管理の知識が求められます。
この記事では、Linuxのpasswdコマンドを使ったパスワード変更の方法を、基本操作からセキュリティ上の注意点まで丁寧に解説していきます。
Linuxでユーザーのパスワードを変更する方法は?
ユーザーのパスワードを変更する最も基本的な方法は、passwdコマンドを使うことです。
自分自身のパスワードを変更する
一般ユーザーが自分のパスワードを変更する場合は、引数なしでpasswdを実行します。
$ passwd
実行すると、以下のように現在のパスワードと新しいパスワードの入力を求められます。
Changing password for user ユーザー名.
Current password: ← 現在のパスワードを入力
New password: ← 新しいパスワードを入力
Retype new password: ← 新しいパスワードを再入力
新しいパスワードを2回入力し、一致すればパスワードの変更が完了します。
他ユーザーのパスワードを変更する(root権限)
root(管理者)権限がある場合は、他ユーザーのパスワードも変更できます。
# passwd ユーザー名
例えば、ユーザー「tanaka」のパスワードを変更する場合はこちらです。
# passwd tanaka
New password: ← 新しいパスワードを入力
Retype new password: ← 新しいパスワードを再入力
root権限で実行する場合は、現在のパスワードを聞かれずに直接新しいパスワードを設定できます。
そのため、ユーザーが現在のパスワードを忘れてしまった場合でも、rootから変更が可能です。
詳細は公式マニュアル(passwd(1) — Linux manual page)も確認すると安心です。
passwdコマンドの便利なオプション
passwdコマンドには、パスワード変更以外にも便利なオプションがいくつかあります。
よく使うものを紹介します。
-lオプション:アカウントをロックする
一時的にユーザーのログインを無効にしたい場合は、-l(lock)オプションでアカウントをロックできます。
# passwd -l tanaka
ロックされたユーザーはパスワード認証でログインできなくなります。
退職者のアカウントを即座に無効化したい場合などに便利です。
-uオプション:アカウントのロックを解除する
ロックしたアカウントを再び有効にする場合は、-u(unlock)オプションを使います。
# passwd -u tanaka
-eオプション:次回ログイン時にパスワード変更を強制する
-e(expire)オプションを使うと、パスワードを期限切れ状態にできます。
ユーザーが次回ログインした際に、強制的にパスワードの変更を求められるようになります。
# passwd -e tanaka
新規ユーザーの初回パスワード変更を促したい場合や、全ユーザーのパスワードを一斉にリセットしたい場合に便利です。
-Sオプション:パスワードのステータスを確認する
ユーザーのパスワードの状態(設定日、有効期限、ロック状態など)を確認するには、-Sオプションを使います。
# passwd -S tanaka
出力例はこちらです。
tanaka PS 2025-01-15 0 90 7 -1 (Password set, SHA512 crypt.)
PS:パスワードが設定済みLK:アカウントがロック中NP:パスワードが未設定
パスワード変更時の注意点
パスワードの変更自体は簡単ですが、セキュリティ上の注意点もいくつかあります。
短すぎるパスワードや単純なパスワードは拒否される
Linuxのデフォルト設定では、短すぎるパスワードや辞書に載っている単語はエラーになります。
英大文字・小文字・数字・記号を組み合わせた8文字以上のパスワードを設定しましょう。
パスワードは定期的に変更する
同じパスワードを長期間使い続けると、漏洩時のリスクが高まります。
定期的な変更を心がけましょう。
変更後のパスワードは安全な方法で管理する
パスワードをテキストファイルにそのまま保存するのは危険です。
パスワードマネージャーの利用を検討しましょう。
パスワードポリシーの設定
サーバーを運用する場合は、パスワードの有効期限や最小文字数といったパスワードポリシーを設定しておくのがおすすめです。
chageコマンドを使うと、ユーザーごとにパスワードの有効期限を設定できます。
# chage -M 90 tanaka
この例では、ユーザー「tanaka」のパスワードの最大有効日数を90日に設定しています。
90日を過ぎるとパスワードの変更を求められるようになります。
現在の設定を確認するには、-lオプションを使います。
# chage -l tanaka
出力例はこちらです。
Last password change : Jan 15, 2025
Password expires : Apr 15, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
参考:chage(1) — Linux manual page
まとめ
今回は、Linuxのpasswdコマンドを使ったユーザーパスワードの変更方法を紹介しました。
- 自分のパスワードを変更するには
passwd、他のユーザーを変更するにはroot権限でpasswd ユーザー名を実行する -lでアカウントロック、-eでパスワード変更の強制など、便利なオプションも活用できる- パスワードは定期的に変更し、短すぎるパスワードや単純なパスワードは避ける
chageコマンドでパスワードの有効期限を設定しておくと、運用がより安全になる
パスワード管理はサーバーセキュリティの基本です。
passwdコマンドとchageコマンドを活用して、安全なサーバー運用を心がけましょう。























