ロックユーザ一覧を取得する方法について - CentOS|Systems Engineer Wiki

Systems Engineer Wiki

訪問者:30,861,465 人目

<< 2024年03月 

12
3456789
10111213141516
17181920212223
24252627282930
31
お知らせ・メンテナンス情報
  >  
  >  
ロックユーザ一覧を取得する方法について

ロックユーザ一覧を取得する方法について

投稿日: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