うおの知識倉庫

ゆるーくアウトプットしてます。

CentOSのパスワード自動変更スクリプトを書いた。

背景

あるイベントの為に、複数人のユーザのパスワードを一括で変更出来たら良いなと思い作成した。

動作確認した環境

前準備

前準備: 16行目あたりに対象としたいユーザ分、

username=("${username[@]}" "追加したいユーザ名")
userpass=("${userpass[@]}" "追加したいユーザの新しいパスワード")

のコードを追加する。

実行手順

  1. $ su -で管理者ユーザになる。
  2. $ vi pwResetCentOS.sh を実行し、下記のコードをコピペ、保存する。
  3. $ chmod u+x pwResetCentOS.shで実行権限を与える。
  4. $ ./pwResetCentOS.shスクリプトを実行。
  5. $ rm pwResetCentOS.shスクリプトを削除。
  6. パスワードが変更されていることを確認する。※変更されていない場合は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!!"

所感

かなり脳筋なコードになっているが、上記コードにバックアップするためのコードを追加したりすることで、多少は作業の時短になると思われる。

参考になったURL