Unix / Linux'ta, belirli bir kullanıcının hangi grupta olduğunu komut satırı üzerinden nasıl öğrenirsiniz?
Unix / Linux'ta, belirli bir kullanıcının hangi grupta olduğunu komut satırı üzerinden nasıl öğrenirsiniz?
Yanıtlar:
Bu, kullanıcının kullanıcı kimliğini ve ait oldukları tüm grupları (gidleriyle) gösterir
id userid
Linux / OS X / Unix'te sizin (veya isteğe bağlı olarak belirtilen kullanıcının) ait olduğu grupları görüntülemek için şunu kullanın:
id -Gn [user]
groups [user]
Unix'te kullanılmayan hizmete eşdeğerdir .
OS X / Unix'te, id -p [user]
normal etkileşimli komut önerilir.
Parametrelere ilişkin açıklama:
-G
,--groups
- tüm grup kimliklerini yazdır
-n
,--name
- sayı yerine bir ad yazdırın,-ugG
-p
- Çıktıyı okunabilir yapın.
veya sadece / etc / gruplarını çalışın (tamam, ldap ile pam kullanıyorsa muhtemelen işe yaramaz)
Aşağıda, CSV biçiminde ansible ve gösterge panosuna entegre edilen komut dosyası bulunmaktadır.
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
Çıktım aşağıdaki metin dosyalarında saklandı.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.