En Unix / Linux, ¿cómo saber en qué grupo se encuentra un usuario determinado a través de la línea de comandos?
En Unix / Linux, ¿cómo saber en qué grupo se encuentra un usuario determinado a través de la línea de comandos?
Respuestas:
Este muestra el uid del usuario, así como todos los grupos (con sus gids) a los que pertenecen
id userid
En Linux / OS X / Unix para mostrar los grupos a los que usted (o el usuario opcionalmente especificado) pertenece, use:
id -Gn [user]
que es equivalente a la groups [user]
utilidad que ha quedado obsoleta en Unix.
En OS X / Unix, id -p [user]
se sugiere el comando para la interacción normal.
Explicación sobre los parámetros:
-G
,--groups
- imprime todos los ID de grupo
-n
,--name
- imprima un nombre en lugar de un número, para-ugG
-p
- Hacer que la salida sea legible para humanos.
o simplemente estudie / etc / groups (ok, esto probablemente no funcione si usa pam con ldap)
A continuación se muestra el script que está integrado en el panel de control ansible y generador en formato 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
Mi salida se almacena en los archivos de texto a continuación.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.