유닉스 / 리눅스에서 명령 행을 통해 특정 사용자가 어떤 그룹에 속하는지 어떻게 알 수 있습니까?
@iconoclast : / etc / passwd에서 그룹에 속한 사용자를 나열하지 않습니다.
—
user2284570
유닉스 / 리눅스에서 명령 행을 통해 특정 사용자가 어떤 그룹에 속하는지 어떻게 알 수 있습니까?
답변:
이것은 사용자의 uid와 그들이 속한 모든 그룹 (자녀들과 함께)을 보여줍니다
id userid
또는 / 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
getent group <groupname>
.