유닉스 / 리눅스에서 명령 행을 통해 특정 사용자가 어떤 그룹에 속하는지 어떻게 알 수 있습니까?
답변
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