저는 최근에 새로운 사용자를 생성하고 특정 그룹에 할당하고 있습니다. 특정 그룹에 할당된 모든 사용자를 표시하는 명령이 있는지 궁금합니다. "groups" 명령을 사용해 보았지만 이 명령을 사용할 때마다 "groups: notfound"라는 메시지가 나타납니다.
답변1
나는 사용하는 것을 선호한다얻다주문하다...
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)