passwdコマンドは、ユーザのパスワードを設定・変更することができます。また、passwdコマンドはパスワードの有効期限などの設定を行うこともできます。
自分自身のパスワードを変更する場合ならば、管理者権限は特に必要ありません。しかし、パスワードの有効期限などの設定を変更する場合や他のユーザのパスワードを変更する場合は、管理者権限が必要になります。
目次
現在のユーザのパスワードを変更
passwdコマンドは引数なしで利用すると現在のユーザのパスワードを変更できます。パスワードは現在のパスワードを入力してから、新しいパスワードを2回入力します。
また、通常のユーザが自身のパスワードを変更するのに管理者権限は必要ありません。
コマンド例と実行結果
1 2 3 4 5 6 |
testuser$ passwd Changing password for testuser. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
PS1='\u$ '
管理者権限を用いてパスワードを変更
管理者権限を用いるとすべてのアカウントに対して、パスワードを変更できます。管理者権限を用いてパスワードを変更するとき、現在のパスワードを入力する必要はなく、新しいパスワードを2回入力するだけでパスワードが変更できます。
コマンド例と実行結果
1 2 3 4 |
ubuntu$ sudo passwd testuser Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
パスワードのステータスを確認
(-Sオプション)
-Sオプションを用いるとパスワードのステータスを確認できます。
ステータスのそれぞれの列は
1列目:ユーザ名
2列目:パスワードの状態(P:利用可能、NP:パスワードなし、L:ロックされたパスワード)
3列目:パスワードを最後に変更した日付
4列目:パスワードを次に変更できるまでの変更できない期間(0はいつでも変更できる)
5列目:パスワードを変更してからの有効期間
6列目:パスワードの期限切れを何日前に注意喚起するかどうか
7列目:パスワードの期限切れから何日後にアカウントにログインできなくするかどうか
になります。
コマンド例と実行結果
1 2 |
ubuntu$ passwd -S ubuntu P 06/12/2018 0 99999 7 -1 |
また、-aオプションは-Sオプションと一緒に利用するオプションで、全てのユーザのパスワードの状態を表示できます。
コマンド例と実行結果
1 2 3 4 |
ubuntu$ sudo passwd -aS | tail -n3 testuser P 06/20/2018 0 1 7 -1 testuser2 NP 06/20/2018 0 99999 7 -1 testuser3 L 06/20/2018 0 99999 7 -1 |
パスワードを変更できない期間を設定
(-nオプション)
-nオプションを用いると、パスワードを変更できない期間(日単位)を設定できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ubuntu$ passwd -S ubuntu P 06/12/2018 1 99999 7 -1 ubuntu$ ubuntu$ passwd Changing password for ubuntu. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully ubuntu$ ubuntu$ passwd Changing password for ubuntu. (current) UNIX password: You must wait longer to change your password passwd: Authentication token manipulation error passwd: password unchanged |
パスワードを変更してからの有効期限を設定
(-xオプション)
-xオプションを用いるとパスワードを変更してからの有効期限(日単位)を設定することができます。
有効期限が切れたパスワードは新しいパスワードに変更するように要求されます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ubuntu$ date '+%Y-%m-%d' 2018-06-21 ubuntu$ sudo passwd -x 0 ubuntu passwd: password expiry information changed. ubuntu$ passwd -S ubuntu P 06/21/2018 0 0 7 -1 ubuntu$ ubuntu$ sudo chage -d 2018-06-20 ubuntu ubuntu$ passwd -S ubuntu P 06/20/2018 0 0 7 -1 ubuntu$ ubuntu$ sudo login ubuntu Password: You are required to change your password immediately (password aged) Changing password for ubuntu. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: Last login: 木 6月 21 12:44:25 JST 2018 on pts/2 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 140 packages can be updated. 83 updates are security updates. ubuntu@ubuntu-VirtualBox:~$ |
パスワードの期限切れを何日前に注意喚起するかを設定
(-wオプション)
-wオプションは、パスワードの期限切れまであと何日かのような注意喚起を何日前から表示するかを設定できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ubuntu$ sudo passwd -w 100000 ubuntu passwd: password expiry information changed. ubuntu$ passwd -S ubuntu ubuntu P 06/21/2018 0 99999 100000 -1 ubuntu$ sudo login ubuntu Password: Warning: your password will expire in 99999 days Last login: 木 6月 21 12:57:24 JST 2018 on pts/2 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 140 packages can be updated. 83 updates are security updates. ubuntu@ubuntu-VirtualBox:~$ |
パスワードの期限切れから何日後にアカウントにログインできなくなるかどうかを設定
(-iオプション)
-iオプションを用いると、パスワードの期限切れから何日後にアカウントにログインできなくなるかを設定できます。この値が-1ならば、この機能は無効になります。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
ubuntu$ date '+%Y-%m-%d' 2018-06-21 ubuntu$ sudo passwd -i 0 ubuntu passwd: password expiry information changed. ubuntu$ sudo passwd -x 0 ubuntu passwd: password expiry information changed. ubuntu$ passwd -S ubuntu ubuntu P 06/21/2018 0 0 7 0 ubuntu$ ubuntu$ sudo chage -d 2018-06-20 ubuntu ubuntu$ ubuntu$ sudo login ubuntu Password: Your account has expired; please contact your system administrator Authentication failure ubuntu$ ubuntu$ sudo chage -d 2018-06-21 ubuntu ubuntu$ sudo login ubuntu Password: Warning: your password will expire in 0 days Last login: 木 6月 21 12:57:54 JST 2018 on pts/2 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 140 packages can be updated. 83 updates are security updates. ubuntu@ubuntu-VirtualBox:~$ |
パスワードの削除
(-dオプション)
-dオプションを用いると、パスワードを削除することができます。
コマンド例と実行結果
1 2 3 4 |
ubuntu$ sudo passwd -d ubuntu passwd: password expiry information changed. ubuntu$ sudo passwd -S ubuntu ubuntu NP 06/21/2018 0 0 7 -1 |
パスワードを即時に期限切れに
(-eオプション)
-eオプションを利用すると、ユーザのパスワードをすぐに期限切れにすることができます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ubuntu$ sudo passwd -e ubuntu passwd: password expiry information changed. ubuntu$ sudo login ubuntu Password: You are required to change your password immediately (root enforced) Changing password for ubuntu. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: Last login: 木 6月 21 13:15:45 JST 2018 on pts/2 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 140 packages can be updated. 83 updates are security updates. ubuntu@ubuntu-VirtualBox:~$ |
パスワードのロック・アンロック
(-lオプション・-uオプション)
-lオプションを用いると、パスワードをロックすることができます。パスワードをロックすると使用していたパスワードを利用できなくなります(暗号化されたパスワードの先頭に!の文字が追加することで利用できなくしています)。
1 2 3 4 5 6 7 8 9 10 11 |
ubuntu$ sudo passwd -l testuser passwd: password expiry information changed. ubuntu$ sudo cat /etc/shadow | grep '^testuser' testuser:!$6$VZs2IYc4$Gpb5MUv0ZL//AC9iFAgy4lEiv4cbDFAq5MFTkIf66vPxKrwylBMDBH.XGuv.t4jOBmSxRP5.IuqEqwcsouFlx1:17703:0:99999:7::: ubuntu$ ubuntu$ sudo login testuser Password: Login incorrect ubuntu-VirtualBox login: ^C ubuntu$ |
-uオプションを用いるとロックされたパスワードをアンロックすることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ubuntu$ sudo passwd -u testuser passwd: password expiry information changed. ubuntu$ sudo passwd -S testuser testuser P 06/21/2018 0 99999 7 -1 ubuntu$ sudo cat /etc/shadow | grep '^testuser' testuser:$6$VZs2IYc4$Gpb5MUv0ZL//AC9iFAgy4lEiv4cbDFAq5MFTkIf66vPxKrwylBMDBH.XGuv.t4jOBmSxRP5.IuqEqwcsouFlx1:17703:0:99999:7::: ubuntu$ ubuntu$ sudo login testuser Password: Last login: 木 6月 21 12:37:11 JST 2018 on pts/2 Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 140 packages can be updated. 83 updates are security updates. $ |
また、このパスワードのロックは、アカウントを使用できなくなるわけではありません。アカウントを使用できなくする方法として、usermodコマンドの悪運との有効期限を指定する-eオプションで1(1970-1-2)を方法があります。
1 2 3 4 5 6 |
ubuntu$ sudo usermod -e 1 testuser ubuntu$ sudo login testuser Password: Your account has expired; please contact your system administrator Authentication failure |