「passwd」コマンドはユーザーアカウントのパスワード設定や変更、有効期限の設定等を行うためのコマンドです。
一般ユーザーだと自身のパスワードを変更する際に使用することができます。
その他のユーザーのパスワードを変更する場合は、パスワードを変更したいユーザーでログインするか、rootユーザーでログインする必要が有ります。
「passwd」コマンドの書式及びオプションは下記のようになります。([]内は省略可能)
passwd [オプション] ユーザー名
オプション(基本的にrootユーザーのみ使用可能)
-e・・・指定ユーザーのパスワードを期限切れにする。期限切れとなったユーザーは次回ログイン時にパスワード変更を促される。
-d・・・指定ユーザーのパスワードを削除する。
-l・・・指定ユーザーのアカウントをロックする。
-u・・・指定ユーザーのアカウントロックを解除する。
-i 日数・・・パスワードの有効期限が切れてからアカウント使用不能になるまでの日数を指定する。
-n 日数・・・パスワード変更最小日数を指定する。この最小日数が経過するまでユーザーはパスワード変更ができない。
実際に仮想環境を使用して「passwd」コマンドを使用してみようと思います。
まずrootユーザーでログインし、「useradd」コマンドを使用して「test」ユーザーを新規作成します。コマンドは下記になります。
useradd test
新規作成した「test」ユーザーにはまだパスワード設定されていないので、「passwd」コマンドを使用してパスワード設定を行います。
passwd test
上記コマンドを入力すると、下記画像が表示されるので設定したいパスワードを入力します。パスワード設定が成功すると、一番下の行のような文言が表示されます。
これでパスワード設定・変更は完了となります。ちなみにユーザーアカウントの情報は全て「/etc/passwd」というファイルに記載されており、先ほど新規作成した「test」ユーザーの情報も記載されています。「cat」コマンドを使用し、「/etc/passwd」の内容を確認してみます。下記画像が内容になります。
しかし、この状態だとユーザー情報が多くて見づらいので、「grep」コマンドを使用して「test」ユーザーの情報のみを抽出してみます。
情報は:(コロン)で区切られており、各番号が何の情報を表しているのかを下記に示します。
①ユーザー名
②パスワード(別ファイルに記載のため、xと記載されている)
③ユーザーID
④ユーザーのプライマリグループID
⑤コメント
⑥ホームディレクトリ
⑦ログインシェル
ちなみに②パスワードは、「/etc/shadow」という別ファイルに暗号化されたパスワードが記載されています。
「/etc/shadow」ファイルはrootユーザーのみ読み出し可能なファイルで、一般ユーザーでは中身を見ることができません。こちらのファイルについての説明はまた別の機会にさせていただきたいと考えています。
パスワード管理はセキュリティ設定を考える上で必ず行わなければならない重要なことであるため、今回passwdコマンドや「etc/passwd」ファイルの説明をさせていただきました。
参考資料