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

Systems Engineer Wiki

訪問者:31,278,874 人目

<< 2026年02月 

1234567
891011121314
15161718192021
22232425262728
お知らせ・メンテナンス情報
  >  
  >  
ロックユーザ一覧を取得する方法について

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

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