Як дізнатися, яку групу має даний користувач?


256

Як в Unix / Linux ви дізнаєтеся, до якої групи входить даний користувач за допомогою командного рядка?


23
Щоб отримати протилежне, побачити, хто в даній групі, ви можете використовувати getent group <groupname>.
іконоборство

1
@iconoclast: який не перераховує користувачів, що належать до групи в / etc / passwd.
користувач2284570

Відповіді:



102

Це показує uid користувача, а також усі групи (з їх дітьми), до яких вони належать

id userid

2
Це також видається дуже корисним. Він має більш багатослівний вихід, ніж команда 'groups', тому якщо вам потрібен ідентифікатор групи / ідентифікатор користувача, використовуйте це!
Алекс Арго

Це має бути найбільш детальна і правильна відповідь, мати підсумок!
Гарві Лін

16

У Linux / OS X / Unix для відображення груп, до яких належить ви (або необов'язково вказаний користувач), використовуйте:

id -Gn [user]

що еквівалентно groups [user]корисності, яка застаріла в Unix.

У OS X / Unix команда id -p [user]пропонується для звичайного інтерактивного.

Пояснення параметрів:

-G, --groups- друкувати всі ідентифікатори групи

-n, --name- друкувати ім'я замість числа, для-ugG

-p - Зробити результат, зрозумілий людині.


0

або просто вивчити / etc / groups (нормально це, мабуть, не працює, якщо використовується пам’ять з ldap)


7
Дійсно, це погана відповідь. "гетентна група" є кращою.
борцмейєр

0

Нижче представлений сценарій, який інтегрований у ansible та генерує інформаційну панель у форматі 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.