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