スクリプトでユーザーのパスワードを変更したり、ロックしたりする方法。 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: 成功