Linux passwd command

passwd はユーザー・アカウントのパスワードを変更するLinuxコマンドです。通常のユーザーは自分のアカウントのパスワードだけを変更できますが、スーパーユーザーはどのアカウントのパスワードも変更できます。passwd コマンドは、アカウントまたは関連するパスワードの有効期間を変更することもできます。

古いパスワードがある場合は、最初にそのパスワードの入力を求められます。このパスワードは暗号化され、保存されたパスワードと比較されます。ユーザーが正しいパスワードを入力できる機会は1回のみです。スーパーユーザーはこの手順を省略して、忘れたパスワードを変更できるようになります。

パスワードには変更できる最短期間や最長期間を設けることができます。これをエージングといいます。パスワードが入力されると、パスワードのエージング情報がチェックされ、ユーザがこの時点でパスワードを変更できるかどうかが確認されます。そうでない場合、passwdはパスワードの変更を拒否して終了します。

ユーザーは新しいパスワードの入力を2回求められます。2番目の入力が最初の入力と比較され、パスワードを変更するには両方が一致する必要があります。

次に、パスワードの複雑さがテストされます。一般的なガイドラインとして、パスワードは6~8文字で構成され、次の各セットの1文字以上を含める必要があります。

passwdコマンドは、複雑でないパスワードを拒否します。

パスワード・セキュリティの侵害は、通常、パスワードの不注意な選択または処理によって発生します。このため、辞書に記載されているパスワードや、書き留めておく必要があるパスワードは選択しないでください。また、パスワードは正しい名前、ライセンス番号、生年月日、または住所であってはなりません。これらのいずれも、システムセキュリティに違反する推測として使用できます。

現在のユーザのパスワードを変更する。

$ passwd

指定したユーザのパスワードを変更する。他のユーザーの情報を変更するため、スーパーユーザー権限が必要になる。

$ sudo passwd tsuka

コマンド・オプション

passwd コマンドには、次のコマンド・オプションを指定できる。

-a
--all
すべてのユーザーのステータスを表示する。このオプションは -S オプションと共に指定する。他のユーザーの情報を表示するため、スーパーユーザー権限が必要になる。
$ sudo passwd -S -a
-d
--delete
ユーザーのパスワードを削除する。
$ passwd -d
-e
--expire
ユーザーのパスワードを有効期限切れにする。パスワードの有効期限が切れると、ユーザーが次回ログインしたときに、パスワードの変更が要求される。
$ passwd -e
-h
--help
ヘルプメッセージを表示して終了する。
$ passwd -h
-i days
--inactive days
days 日後にユーザーのアカウントを無効にする。無効になったアカウントはログインできなくなる。
$ passwd -i 7
-l
--lock
アカウントのパスワードをロックする。
$ passwd -l
-n days
--mindays days
パスワードを変更する間隔の最小日数を days に設定する。
$ passwd -n 7
-q
--quiet
静音モードで実行する。
-S
--status
アカウントのステータスを表示する。
$ passwd -S
tsuka P 05/03/2021 0 99999 7 -1
-u
--unlock
アカウントのパスワードのロックを解除する。このオプションは、パスワードを以前の値(-lオプションを使用する前の値)に戻すことによって、パスワードを再度有効にする。
$ passwd -u
-w days
--warndays days
パスワードの変更が要求されるまでの警告の日数を days に設定する。
$ passwd -w 60
-x days
--maxdays days
パスワードの最大有効日数を days に設定する。
$ passwd -x 90

終了コード

コマンドが終了すると、親プロセスへ終了コードが渡される。passwd コマンドの終了コードは、次に示すいずれかの値である。

0
成功

passwd コマンドの終了ステータスを表示する例を示す。

$ passwd -S
tsuka P 05/03/2021 0 99999 7 -1
$ echo $?
0
1
許可が下りない

passwd コマンドの終了ステータスを表示する例を示す。

$ passwd -S -a
passwd: Permission denied.
$ echo $?
1
2
オプションの無効な組み合わせ
3
予期しない失敗、何も行われない
4
予期しない失敗、passwdファイルがありません
5
passwdファイルがビジーです。再試行してください
6
オプションの引数が無効です

定期的にパスワードの変更を要求するのは無意味

かつて、定期的にパスワードの変更を要求するのがセキュリティの向上に役立つと信じられていた時代があった。 しかし、NIST(アメリカ国立標準技術研究所)、総務省および内閣サイバーセキュリティセンターがこれを否定したことにより、現在では、定期的にパスワードの変更を要求するのは無意味とされている。

参考文献

National Institute of Standards and Technology (2021) NIST Special Publication 800-63B

総務省 (2013) 安全なパスワード管理

内閣サイバーセキュリティセンター (2020) インターネットの安全・安心ハンドブック