
저는 최근에 새로운 사용자를 생성하고 특정 그룹에 할당하고 있습니다. 특정 그룹에 할당된 모든 사용자를 표시하는 명령이 있는지 궁금합니다. 'groups' 명령을 사용해 보았으나 이 명령을 사용할 때마다 'groups: notfound'라는 메시지가 나타납니다.
답변1
나는getent명령 ...
getent는 시스템과 동일한 이름 서비스를 사용하므로 getent는 LDAP와 같은 네트워크 정보 소스에서 얻은 정보를 포함하여 모든 정보를 표시합니다.
따라서 그룹의 경우 다음을 사용해야 합니다.
getent group name_of_group
어디이름_그룹조회하려는 그룹으로 대체됩니다. 이는 보충 그룹 멤버십만 반환하며 이 그룹을 기본 그룹으로 사용하는 사용자는 포함하지 않습니다.
수행할 수 있는 다른 조회가 많이 있습니다. passwd
또 다른 유용한 조회는 기본 그룹을 나열하는 데 필요합니다.
답변2
grep을 사용할 수 있습니다.
grep '^group_name_here:' /etc/group
여기에는 이 그룹을 기본 그룹으로 사용하는 사용자가 아닌 보조 그룹 구성원만 나열됩니다. 그리고 LDAP와 같은 네트워크 서비스의 그룹이 아닌 로컬 그룹만 찾습니다.
답변3
더 쉽게 할 수 있습니다groups [username]
모든 로컬 사용자와 해당 로컬 그룹을 나열하려면 다음을 수행하십시오.
cat /etc/passwd | awk -F':' '{ print $1}' | xargs -n1 groups
"그룹: 명령을 찾을 수 없음" 메시지가 표시되면 환경 경로를 더 나쁘게 편집했을 가능성이 높습니다. 경로를 재설정하려면PATH=$(getconf PATH)
답변4
groups
명령은 사용자의 그룹 멤버십을 인쇄합니다. lid
명령을 사용하여 다음과 같이 그룹의 사용자를 나열 할 수 있습니다 .
# lid -g <groupname>
업데이트: Debian 기반 배포판에서는 명령 이름이 libuser-lid
. 두 명령 모두 libuser
@chris-down이 언급한 대로 패키지로 제공됩니다.
$ sudo libuser-lid -g lpadmin
kadir(uid=xxxx)