Wie können Sie unter Unix / Linux über die Befehlszeile herausfinden, in welcher Gruppe sich ein bestimmter Benutzer befindet?
Wie können Sie unter Unix / Linux über die Befehlszeile herausfinden, in welcher Gruppe sich ein bestimmter Benutzer befindet?
Antworten:
Dieser zeigt die UID des Benutzers sowie alle Gruppen (mit ihren Gids), zu denen sie gehören
id userid
Verwenden Sie unter Linux / OS X / Unix Folgendes, um die Gruppen anzuzeigen, zu denen Sie (oder der optional angegebene Benutzer) gehören:
id -Gn [user]
Dies entspricht einem groups [user]
Dienstprogramm, das unter Unix veraltet ist.
Unter OS X / Unix wird der Befehl id -p [user]
für normale interaktive Aktionen empfohlen.
Erläuterung zu den Parametern:
-G
,--groups
- Alle Gruppen-IDs drucken
-n
,--name
- drucke einen Namen anstelle einer Nummer, z-ugG
-p
- Machen Sie die Ausgabe lesbar.
oder einfach studieren / etc / groups (ok das funktioniert wahrscheinlich nicht, wenn es pam mit ldap verwendet)
Unten finden Sie das Skript, das in ansible integriert ist und ein Dashboard im CSV-Format generiert.
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
Meine Ausgabe wird in den folgenden Textdateien gespeichert.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.