Linuxでパスワード管理する際に利用するコマンドといえば、passwdコマンドだ。
会社の手順書なんかでこのコマンドが出てくる際、だいたいはパスワードを設定したりする際にばかり登場するが、結構いろいろな使い方がある。

1.パスワードの設定をする

必ず一度は実行したことがあるであろう、パスワードの設定。
この使い方は知らない人はいないのではなかろうか。

passwd # 自分自身のパスワードを設定する
passwd <username> # 指定したユーザのパスワードを設定する(rootのみ)
[root@BS-PUB-CENT7-01 ~]# passwd test
ユーザー test のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@BS-PUB-CENT7-01 ~]# su - test
最終ログイン: 2016/05/17 (火) 08:48:56 JST日時 pts/0
[test@BS-PUB-CENT7-01 ~]$ passwd
ユーザー test のパスワードを変更。
test 用にパスワードを変更中
現在の UNIX パスワード:
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

2.ユーザのパスワード設定状態を確認する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザのパスワードの設定状態を確認することができる。

passwd -S ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 0 99999 7 -1 (パスワード設定済み、SHA512 暗号化。)

3.パスワードを削除する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザのパスワードを削除することができる。

passwd -d ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -d test
ユーザー test のパスワードを削除。
passwd: 成功

4.パスワードをロックする

管理ユーザは、以下のようにコマンドを実行することで指定したユーザをロックすることができる。

passwd -l ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -l test
ユーザー test 用のパスワードをロック。
passwd: 成功
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test LK 2016-05-28 0 99999 7 -1 (パスワードはロック済み。)

5.ロックを解除する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザのロックを解除することができる。

passwd -u ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test LK 2016-05-28 0 99999 7 -1 (パスワードはロック済み。)
[root@BS-PUB-CENT7-01 ~]# passwd -u test
ユーザー test 用のパスワードをロック解除。
passwd: 成功
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 0 99999 7 -1 (パスワード設定済み、SHA512 暗号化。)

6.パスワードの使用期限を設定する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザのパスワードの試用期間を設定することができる。

passwd -i 日数 ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 0 99999 7 -1 (パスワード設定済み、SHA512 暗号化。)
[root@BS-PUB-CENT7-01 ~]# passwd -i 30 test
ユーザー test のエージングデータを調節。
passwd: 成功
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 0 99999 7 30 (パスワード設定済み、SHA512 暗号化。)

7.パスワードの変更可能までの最小期間を設定する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザがパスワードを変更できるようになるまでの最小期間を設定することができる。

passwd -n 日数 ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 0 99999 7 30 (パスワード設定済み、SHA512 暗号化。)
[root@BS-PUB-CENT7-01 ~]# passwd -n 7 test
ユーザー test のエージングデータを調節。
passwd: 成功
[root@BS-PUB-CENT7-01 ~]# passwd -S test
test PS 2016-05-28 7 99999 7 30 (パスワード設定済み、SHA512 暗号化。)

8.パスワード期限が切れる前に警告させる日数を設定する

管理ユーザは、以下のようにコマンドを実行することで指定したユーザのパスワードの有効期限が切れる何日前から警告を表示させるかを設定することができる。

passwd -w 日数 ユーザID
[root@BS-PUB-CENT7-01 ~]# passwd -w 7 test
ユーザー test のエージングデータを調節。
passwd: 成功