SSH를 사용하여 연결을 시도할 때 사용자 그룹 추출

SSH를 사용하여 연결을 시도할 때 사용자 그룹 추출

테스트를 수행하기 위해 사용자 이름을 추출했습니다. w | grep ^usera | wc -l

열려 있는 세션이 있으면 1 이 표시되지만 usera이제 사용자 그룹을 추출하려면 보다 일반적인 사용 사례가 필요합니다.

예: 사용자 그룹을 추출한 group=admin다음 wc -lgrp 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해당 사용자가 로그인했는지 확인합니다. 그런 다음 여기에서 출력된 행 수를 계산합니다.

관련 정보