Как получить список имен пользователей, назначенных группе в FreeBSD 11.1?
Этот вопрос запрашивает список пользователей или список групп.
Этот вопрос запрашивает пользователей, которые являются членами нескольких определенных групп.
➥ Но как просто запросить список пользователей, которые в настоящее время относятся к одной конкретной группе, например wheel
?
Если возможно, я предпочитаю решение в одной команде. Но если это невозможно, сценарий был бы полезным и познавательным.
Вы можете выбрать пользователей с определенной группой из списка всех пользователей, предоставленных pw
утилита:
pw usershow -P -a | grep groupname
Результат будет примерно таким:
Login Name: username1 #1024 Group: groupname #1002
Login Name: username2 #1025 Group: groupname #1002
Не обращая внимания на системные скрипты вроде getent
, пользователи могут быть в группе двумя способами: либо это их основная группа, определенная в / etc / passwd, либо они имеют ее как вторичную группу в / etc / groups.
GROUPID=1000
sed -rn "s/^[^:]*:[^:]*:$GROUPID://p" < /etc/group | tr ',' '\n'
sed -rn "s/^([^:]*):[^:]*:[^:]*:$GROUPID:.*/\\1/p" < /etc/passwd
Должен сделать это красиво. awk
наверное выглядело бы лучше ...
GROUPID=1000
awk -F: -v "g=$GROUPID" '{if ($3==g) print $1;}' /etc/passwd
awk -F: -v "g=$GROUPID" '{if ($3==g) print $4;}' /etc/group | tr ',' '\n'
https://www.cyberciti.biz/faq/linux-list-all-members-of-a-group/ thread показать несколько способов сделать это. Я лично предпочитаю метод участников. но приведенный ниже метод является родным и хорошо работает.
$ grep 'grpup-name-here' /etc/group
$ grep 'ftponly' /etc/group
$ grep -i --color 'ftponly' /etc/group
Правильный способ показать всех пользователей в определенной группе во FreeBSD:
# pw groupshow groupname