
Недавно я создавал новых пользователей и назначал их в определенные группы. Мне было интересно, есть ли команда, которая показывает всех пользователей, назначенных в определенную группу? Я пробовал использовать команду 'groups', однако всякий раз, когда я ее использую, она говорит 'groups: not found'
решение1
Я предпочитаю использоватьгетенткоманда ...
Поскольку getent использует ту же службу имен, что и система, getent будет отображать всю информацию, включая полученную из сетевых источников информации, таких как LDAP.
Итак, для группы вам следует использовать следующее...
getent group name_of_group
гдеимя_группызаменяется на группу, которую вы хотите найти. Обратите внимание, что это возвращает только дополнительные членства в группах, оно не включает пользователей, у которых эта группа является основной.
Существует множество других поисков, которые вы можете выполнить... passwd
Еще один полезный поиск — это составление списка основных групп.
решение2
Вы можете использовать grep:
grep '^group_name_here:' /etc/group
Это только перечисляет членство в дополнительных группах, а не пользователя, у которого эта группа является основной. И это находит только локальные группы, а не группы из сетевой службы, такой как LDAP.
решение3
Легче сделатьgroups [username]
Если вы хотите вывести список всех локальных пользователей и их локальные группы, вы можете сделать это
cat /etc/passwd | awk -F':' '{ print $1}' | xargs -n1 groups
Если вы получили сообщение «группы: команда не найдена», скорее всего, вы отредактировали свой путь окружения в худшую сторону. Чтобы сбросить путь, выполните следующие действия:PATH=$(getconf PATH)
решение4
groups
Команда выводит членство в группах для пользователя. Вы можете использовать lid
команду для перечисления пользователей в группе, например:
# lid -g <groupname>
Обновление: В дистрибутивах на базе Debian имя команды отличается на libuser-lid
. Обе команды предоставляются пакетом, libuser
как упомянул @chris-down.
$ sudo libuser-lid -g lpadmin
kadir(uid=xxxx)