テストを実行するためにユーザー名を抽出しました。
w | grep ^usera | wc -l
開いているセッションがある場合は1が表示されますが、usera
ユーザーグループを抽出するにはより一般的なユースケースが必要です。
例:ユーザーグループを抽出し、group=admin
grp wc -l
adminからアクティブセッションを持つユーザーの数を抽出します。
答え1
ユーザーが属するグループを確認できますid -Gn username
。
管理者の数を計算します。
who | cut -d ' ' -f 1 |
while read user; do
id -Gn "$user"
done | grep -F -w "admin" | wc -l
これはwho
、コマンドを使用してログインしたユーザーのリストを取得し、デフォルトのユーザー名を抽出し、cut
各ユーザーに対してグループルックアップを実行します。次に、各グループをgrepして文字列を見つけ、admin
結果を計算します。
または、管理者がログインしていることを確認して、逆方向にこれを実行します。
who $( awk -F':' '$1 ~ /^admin/ { gsub(",", " ", $4); print $4 }' /etc/group ) | wc -l
inコマンド置換は、awk
グループに属するすべてのユーザーを出力し、admin
そのwho
ユーザーがログインしていることを確認します。次に、ここで出力された行数を計算します。