2011年4月26日火曜日

シェルスクリプトサンプル:ユーザ一括ロック


#!/bin/sh
# ロック対象ユーザリストを読込んで対象ユーザをロックするスクリプト

LOCK_USER=lock_user.list

# ロック対象ユーザリスト存在チェック
if [ ! -e $LOCK_USER ]; then
echo "`date \"+%Y%m%d %H:%M:%S\"` ERROR: $LOCK_USER is not exist."
exit 1
fi

# ロック対象ユーザリスト読込み
i=0
while read line
do
user_name[$i]="$line"

# ユーザ存在チェック
id ${user_name[$i]} > /dev/null 2>&1
if [ $? -eq 0 ]; then
# ユーザをロック(無効化)
/usr/bin/passwd -l ${user_name[$i]}

# ユーザロック解除(参考)
# /usr/bin/passwd -u ${user_name[$i]}
else
echo "`date \"+%Y%m%d %H:%M:%S\"` ERROR: ${user_name[$i]} is not exist."
fi

i=`expr $i + 1`
done < $LOCK_USER

exit 0

-------------------------------------------------
■ユーザネーム一覧出力コマンド
[root@tanyao08~]# awk -F":" '{ print $1 }' /etc/passwd

■ロックユーザ一覧出力コマンド
[root@tanyao08 ~]# grep '!!' /etc/shadow