В Unix / Linux, как вы узнаете, в какую группу входит данный пользователь через командную строку?
В Unix / Linux, как вы узнаете, в какую группу входит данный пользователь через командную строку?
Ответы:
Этот показывает uid пользователя, а также все группы (с их gid), к которым он принадлежит
id userid
В Linux / OS X / Unix для отображения групп, к которым вы (или опционально указанный пользователь) принадлежите, используйте:
id -Gn [user]
которая эквивалентна groups [user]
утилите, которая устарела в Unix.
На OS X / Unix, команда id -p [user]
предлагается для обычного интерактивного.
Пояснения по параметрам:
-G
,--groups
- печать всех идентификаторов групп
-n
,--name
- напечатайте имя вместо числа, для-ugG
-p
- Сделайте вывод удобочитаемым.
или просто изучите / etc / groups (хорошо, это, вероятно, не работает, если он использует pam с ldap)
Ниже приведен скрипт, который интегрирован в 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>
.