コマンド

passwdコマンドでパスワードを変更・管理する方法

パスワードの変更はpasswdコマンド一つでできます。自分のパスワード、他のユーザーのパスワード、ロックや有効期限の管理まで、基本の使い方をまとめました。

暗い部屋でノートパソコンに向かう人

Linuxでユーザーのパスワードを変更するときに使うのがpasswdコマンドです。自分のパスワードの変更から、管理者による他のユーザーのパスワード設定、アカウントのロックまで、ユーザー管理の基本となるコマンドです。

自分のパスワードを変更する

一般ユーザーが自分のパスワードを変えるときは、引数をつけずに実行します。

$ passwd
現在のパスワード:
新しいパスワード:
新しいパスワードを再入力してください:

入力中のパスワードは画面に表示されません。最初に現在のパスワードを求められ、その後に新しいパスワードを2回入力します。メッセージの表示はディストリビューションや言語の設定によって少し異なります。

他のユーザーのパスワードを設定する

管理者権限があれば、ユーザー名を指定して他のユーザーのパスワードを設定できます。この場合、そのユーザーの現在のパスワードは聞かれません。

$ sudo passwd tanaka

よく使うオプション

コマンド内容
sudo passwd -l ユーザー名パスワードによるログインをロックする
sudo passwd -u ユーザー名ロックを解除する
sudo passwd -S ユーザー名パスワードの状態を表示する
sudo passwd -e ユーザー名次回ログイン時にパスワードの変更を求める

-lでロックしても、SSHの鍵認証など、パスワード以外の方法でのログインは止まらない場合があります。アカウントそのものを使えなくしたいときは、usermodコマンドでアカウントの有効期限を設定するなど、別の手段も検討しましょう。

パスワードの有効期限を確認する

パスワードの有効期限はchageコマンドで確認、設定できます。

$ sudo chage -l tanaka

-Mで最大の有効日数、-Wで期限切れの何日前から警告するかを設定できます。ただし、定期的なパスワード変更を強制すると、かえって単純なパスワードが使われやすくなるという考え方もあり、最近は長く推測されにくいパスワードを使い、漏えいが疑われたときに変更する運用が勧められることが多くなっています。

パスワードはどこに保存されているのか

ユーザーの一覧は/etc/passwdに書かれていますが、パスワードそのものは含まれていません。パスワードはハッシュ値に変換されたうえで、管理者だけが読める/etc/shadowに保存されています。このファイルを直接編集するのではなく、passwdやchageなどのコマンドを使って変更するのが安全です。

安全に運用するために

  • 推測されにくい長いパスワードを使い、他のサービスと使い回さない
  • サーバーへのSSHログインは、パスワードではなく鍵認証にする
  • 使わなくなったアカウントはロックするか削除する
  • ログインの失敗が続いていないか、ログで確認する

ログインの履歴の確認方法はシステムロギングのページで、そのほかのコマンドはLinuxの基本コマンドで紹介しています。