スクリプトでユーザーのパスワードを変更したり、ロックしたりする方法。 passwdコマンドを使用します。
パスワードの変更
スクリプトでパスワードを変更する場合、"--stdin"オプションを使用して、以下のようにします。
echo "パスワード" | passwd --stdin [ユーザー名]
例 ユーザー ringoのパスワードを"ringo-pass"にする場合、以下のようになります。
#!/bin echo "ringo-pass" | passwd --stdin ringoこのスクリプトをCentOS 7.2で実行すると、以下のようなメッセージが標準出力に出力されます。
ユーザー ringo のパスワードを変更。 passwd: すべての認証トークンが正しく更新できました。
オプション
passwdコマンドには、以下のようなオプションがあります。 アカウントをロックしたり、パスワードの寿命を設定したりすることもできます。
# passwd --help
使い方: passwd [オプション...] <accountName>
-k, --keep-tokens 有効な認証トークンを維持する
-d, --delete named アカウントのパスワードを削除する (root のみ)
-l, --lock 指名されたアカウントのパスワードをロック(rootのみ)
-u, --unlock 指名されたアカウントのパスワードをロック解除(rootのみ)
-e, --expire 指名されたアカウントのパスワードを失効(rootのみ)
-f, --force 操作を強制
-x, --maximum=DAYS 最大パスワード寿命 (root のみ)
-n, --minimum=DAYS 最低パスワード寿命 (root のみ)
-w, --warning=DAYS パスワード失効の前にユーザーが警告を受ける事前日数 (root のみ)
-i, --inactive=DAYS パスワードが失効した後にアカウントが無効になるまでの日数 (root
のみ)
-S, --status named アカウントのパスワードステータスを報告する (root のみ)
--stdin 標準入力(stdin) から新規トークンを読み込む (root のみ)
Help options:
-?, --help Show this help message
--usage Display brief usage message
アカウントのロックとロック解除
ロック
アカウントをロックしてログインできないようにする場合、"--lock" または "-l"オプションを使用します。
passwd --lock [ユーザー名]
#!/bin passwd --lock ringoこのスクリプトをCentOS 7.2で実行すると、以下のようなメッセージが標準出力に出力されて、アカウントがロックされログインできなくなります。
ユーザー ringo 用のパスワードをロック。 passwd: 成功
ロック解除
アカウントのロック解除は、"--unlock" または "-u"オプションを使用します。
passwd --unlock [ユーザー名]
#!/bin passwd --unlock ringoこのスクリプトをCentOS 7.2で実行すると、以下のようなメッセージが標準出力に出力されて、アカウントのロックが解除されます。
ユーザー ringo 用のパスワードをロック解除。 passwd: 成功