[linux] 특정 사용자의 그룹을 찾는 방법은 무엇입니까?

유닉스 / 리눅스에서 명령 행을 통해 특정 사용자가 어떤 그룹에 속하는지 어떻게 알 수 있습니까?



답변

groups

또는

groups user


답변

이것은 사용자의 uid와 그들이 속한 모든 그룹 (자녀들과 함께)을 보여줍니다

id userid


답변

Linux / OS X / Unix에서 사용자 (또는 선택적으로 지정된 사용자)가 속한 그룹을 표시하려면 다음을 사용하십시오.

id -Gn [user]

이것은 groups [user]유닉스에서 폐기 된 유틸리티 와 같습니다 .

OS X / Unix에서 명령 id -p [user]은 일반 대화식으로 제안됩니다.

매개 변수에 대한 설명 :

-G, --groups-모든 그룹 ID를 인쇄

-n, --name-숫자 대신 이름을 인쇄하십시오.-ugG

-p -출력을 사람이 읽을 수있게 만드십시오.


답변

또는 / etc / groups를 연구하십시오 (ldap과 함께 pam을 사용하면 작동하지 않을 것입니다)


답변

아래는 CSV 형식으로 생성 가능하고 생성되는 대시 보드에 통합 된 스크립트입니다.

sh collection.sh

#!/bin/bash

HOSTNAME=`hostname -s`

for i in `cat /etc/passwd| grep -vE "nologin|shutd|hal|sync|root|false"|awk -F':' '{print$1}' | sed 's/[[:space:]]/,/g'`; do groups $i; done|sed s/\:/\,/g|tr -d ' '|sed -e "s/^/$HOSTNAME,/"> /tmp/"$HOSTNAME"_inventory.txt

sudo cat /etc/sudoers| grep -v "^#"|awk '{print $1}'|grep -v Defaults|sed '/^$/d;s/[[:blank:]]//g'>/tmp/"$HOSTNAME"_sudo.txt

paste -d , /tmp/"$HOSTNAME"_inventory.txt /tmp/"$HOSTNAME"_sudo.txt|sed 's/,[[:blank:]]*$//g' >/tmp/"$HOSTNAME"_inventory_users.txt

내 출력은 텍스트 파일 아래에 저장되었습니다.

cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt


답변