CentOSで複数ユーザのパスワードを一括で変更する方法。
概要
動作確認できたバージョン
・CentOS7.4.1708
前準備
16行目あたりに対象としたいユーザ分、
username=("${username[@]}" "追加したいユーザ名") userpass=("${userpass[@]}" "追加したいユーザの新しいパスワード")
のコードを追加する。
実行手順
$ su -
で管理者ユーザになる。
# vi pwResetCentOS.sh
を実行し、下記のコードをコピペ、保存する。
# chmod +x pwResetCentOS.sh
で実行権限を与える。
# ./pwResetCentOS.sh
でスクリプトを実行。
# rm pwResetCentOS.sh
でスクリプトを削除。
パスワードが変更されていることを確認する。
※変更されていない場合はpasswdコマンドを使用し、自力でパスワードを変更する。
pwResetCentOS.shの内容
#!/bin/sh # -*- coding: utf-8 -*- # This code run for CentOS7 # Operation checked with CentOS Linux release 7.4.1708 (core) #Create for array target users username=() userpass=() # You can add target user here # !!! Pay attention to password restrictions !!! # e.g) username=("${username[@]}" "scott") # userpass=("${userpass[@]}" "tigertiger39") username=("${username[@]}" "root") userpass=("${userpass[@]}" "rootpassword") username=("${username[@]}" "user1") userpass=("${userpass[@]}" "tiger1") username=("${username[@]}" "user2") userpass=("${userpass[@]}" "tiger2") username=("${username[@]}" "user3") userpass=("${userpass[@]}" "tiger3") username=("${username[@]}" "user4") userpass=("${userpass[@]}" "tiger4") username=("${username[@]}" "user5") userpass=("${userpass[@]}" "tiger5") username=("${username[@]}" "user6") userpass=("${userpass[@]}" "tiger6") username=("${username[@]}" "user7") userpass=("${userpass[@]}" "tiger7") username=("${username[@]}" "user8") userpass=("${userpass[@]}" "tiger8") username=("${username[@]}" "user9") userpass=("${userpass[@]}" "tiger9") username=("${username[@]}" "user10") userpass=("${userpass[@]}" "tiger10") username=("${username[@]}" "user11") userpass=("${userpass[@]}" "tiger11") #Password change loop for((i=0;i<${#username[@]};i++)) do echo ${userpass[$i]} | passwd --stdin ${username[$i]} echo ${username[$i]} finish!! done echo "Password change all finish!!"
所感
シェルスク1つにまとめるよりもファイルを読み込んで使用した方がスマートな気もする。 一時的に使いたいだけならこの方法でもいいかも