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