Как в Unix / Linux узнать, в какой группе находится данный пользователь, через командную строку?
@iconoclast: не перечисляет пользователей, принадлежащих к группе в / etc / passwd.





groups
или же
groups user
Здесь отображается uid пользователя, а также все группы (с их gid), к которым они принадлежат.
id userid
Это тоже кажется довольно полезным. Он имеет более подробный вывод, чем команда 'groups', поэтому, если вам нужен идентификатор группы / идентификатор пользователя, используйте это!
Это должен быть самый подробный и правильный ответ, оставьте свой положительный отзыв!
или просто изучите / etc / groups (хорошо, это, вероятно, не сработает, если он использует pam с ldap)
Действительно, это плохой ответ. "getent group" лучше.
В Linux / OS X / Unix для отображения групп, к которым вы (или необязательно указанный пользователь) принадлежите, используйте:
id -Gn [user]
что эквивалентно утилите groups [user], которая устарела в Unix.
В OS X / Unix для обычного интерактивного режима рекомендуется использовать команду id -p [user].
Пояснения к параметрам:
-G,--groups- print all group IDs
-n,--name- print a name instead of a number, for-ugG
-p- Make the output human-readable.
Ниже представлен скрипт, который интегрирован в 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
Чтобы получить обратное, посмотреть, кто находится в данной группе, вы можете использовать
getent group <groupname>.