ロックユーザ一覧を取得する方法について - CentOS|Systems Engineer Wiki
Systems Engineer Wiki
訪問者:31,315,061 人目
ロックユーザ一覧を取得する方法について
投稿日:2015-01-27 19:49:39
ロックユーザ一覧を取得する方法について
サーバの運用をしていてロックしているユーザの一覧が欲しくなりググってみたのですが、余り良い情報がなかったのでロックユーザ一覧とユーザ一覧を取得できるシェルスクリプトを作成してみました。 あくまでも、ロックユーザ一覧と接続可能なユーザ一覧を出力するのみです。
#!/bin/sh # ユーザリストを取得 USER_LIST=`cut -d: -f1 /etc/passwd` # 取得したユーザ一覧を配列化 USER_ARRY=(`echo ${USER_LIST}`) # アカウントがロックされているユーザを抽出 echo "*********************************************" echo "Lock User Name List" echo "*********************************************" for ((i=0; i<${#USER_ARRY[@]}; i++)) do # ユーザステータスがロックユーザのみ抽出しユーザ名を表示 USER_STATUS=`passwd -S ${USER_ARRY[i]} | grep 'LK' | cut -d" " -f1` if [ -n "$USER_STATUS" ] then # アカウントロックしているユーザ名を表示 echo ${USER_STATUS} fi done # ユーザ名表示 echo "*********************************************" echo "UnLock User Name List" echo "*********************************************" for ((i=0; i<${#USER_ARRY[@]}; i++)) do # アカウントロックされていないユーザのみ抽出しユーザ名を表示 USER_STATUS=`passwd -S ${USER_ARRY[i]} | grep 'PS' | cut -d" " -f1` if [ -n "$USER_STATUS" ] then # アカウントロックされていないユーザ名を表示 echo ${USER_STATUS} fi done
実行結果
# ./example.sh ********************************************* Lock User Name List ********************************************* bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody dbus vcsa ntp saslauth postfix abrt haldaemon sshd tcpdump apache mysql ********************************************* UnLock User Name List ********************************************* root