CentOSのパスワード自動変更スクリプトを書いた。
背景
あるイベントの為に、複数人のユーザのパスワードを一括で変更出来たら良いなと思い作成した。
動作確認した環境
- CentOS 7.4.1708
前準備
前準備: 16行目あたりに対象としたいユーザ分、
username=("${username[@]}" "追加したいユーザ名") userpass=("${userpass[@]}" "追加したいユーザの新しいパスワード")
のコードを追加する。
実行手順
$ su -
で管理者ユーザになる。$ vi pwResetCentOS.sh
を実行し、下記のコードをコピペ、保存する。$ chmod u+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[@]}" "itiger") username=("${username[@]}" "scott") userpass=("${userpass[@]}" "itiger") username=("${username[@]}" "root") userpass=("${userpass[@]}" "Saitama7D0") #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!!"
所感
かなり脳筋なコードになっているが、上記コードにバックアップするためのコードを追加したりすることで、多少は作業の時短になると思われる。