Как составить список групп в Linux

How to List Groups in Linux

25 Апреля 2020 | Терминал

В этом руководстве объясняется, как показать все группы, в которые входит пользователь. Мы также объясним, как составить список всех членов группы.

Как составить список групп в Linux

В Linux группа - это совокупность пользователей. Основная цель групп - определить набор привилегий, таких как права на чтение, запись или выполнение для данного ресурса, которые могут быть общими для пользователей в группе. Пользователи могут быть добавлены в существующую группу, чтобы использовать предоставленные ей привилегии.


Linux группы 

Пользователь может принадлежать к двум типам групп:

  • Основная группа или группа входа - это группа, назначаемая файлам, которые создаются пользователем. Обычно имя основной группы совпадает с именем пользователя. Каждый пользователь должен принадлежать ровно к одной основной группе.

  • Вторичная или дополнительная группа - используется для предоставления определенных привилегий группе пользователей. Пользователь может быть членом нуля или более вторичных групп.


Список всех групп, членом которых является пользователь 

Есть несколько способов узнать группы, к которым принадлежит пользователь.

Основная группа пользователей хранится в /etc/passwd файле, а дополнительные группы, если таковые имеются, перечислены в /etc/group файле.

Один из способов найти группы пользователей - это просмотреть содержимое этих файлов, используя cat , less или grep . Другой более простой вариант - использовать команду, цель которой - предоставить информацию о пользователях и группах системы.


С использованием groups команду

Самая запоминающаяся команда для перечисления всех групп, в которые входит пользователь, это groups команда. При выполнении без аргумента команда выведет список всех групп, к которым принадлежит текущий зарегистрированный пользователь:

groups 

Первая группа является основной группой.

john adm cdrom sudo dip plugdev lpadmin sambashare 

Чтобы получить список всех групп, к которым принадлежит конкретный пользователь, укажите в groups качестве аргумента имя пользователя для команды:

groups linuxize 

Как и прежде, первая группа является основной.

linuxize : linuxize sudo 

С использованием id команду

id выводит информацию об указанном пользователе и его группах. Если имя пользователя не указано, отображается информация о текущем пользователе.

Например, чтобы получить информацию о пользователе linuxize , введите:

id linuxize 

Команда покажет идентификатор пользователя ( uid ), первичную группу пользователя ( gid ) и вторичные группы пользователя ( groups )

uclass=1001(linuxize) gclass=1001(linuxize) groups=1001(linuxize),27(sudo)
 

Для печати только имен вместо цифр используйте -n опцию. Опция -g будет печатать только основную группу и-G все группы.

Следующая команда напечатает имена групп, членом которых является текущий пользователь:

id -nG 
john adm cdrom sudo dip plugdev lpadmin sambashare

 

Список всех членов группы

Чтобы вывести список всех членов группы, используйте getent group команду, за которой следует имя группы.

Например, чтобы узнать членов группы с именем, developers вы бы использовали следующую команду:

getent group developers 

Если группа существует, команда напечатает группу и всех ее членов:

developers:x:126:frank,mary
 

Если нет выходных данных, это означает, что группа не существует.


Список всех групп 

Для просмотра всех групп, присутствующих в системе, просто откройте /etc/group файл. Каждая строка в этом файле представляет информацию для одной группы.

less /etc/group 

Другой вариант - использовать getent команду, которая отображает записи из баз данных, настроенных в /etc/nsswitch.conf файле, включая group базу данных, которую мы можем использовать для запроса списка всех групп.

Чтобы получить список всех групп, введите следующую команду:

getent group 

Вывод такой же, как при отображении содержимого /etc/group файла. Если вы используете LDAP для аутентификации пользователя, getent отобразятся все группы из /etc/group файловой базы данных и базы данных LDAP.

Вы также можете использовать awk или cut для печати только первое поле, содержащее название группы:

getent group | awk -F: '{ print $1}' 
getent group | cut -d: -f1 

Вывод 

В этом уроке вы узнали, как найти группы, в которые входит пользователь. Те же команды применяются для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...