테스트를 수행하기 위해 사용자 이름을 추출했습니다.
w | grep ^usera | wc -l
열려 있는 세션이 있으면 1 이 표시되지만 usera
이제 사용자 그룹을 추출하려면 보다 일반적인 사용 사례가 필요합니다.
예: 사용자 그룹을 추출한 group=admin
다음 wc -l
grp 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
해당 사용자가 로그인했는지 확인합니다. 그런 다음 여기에서 출력된 행 수를 계산합니다.