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

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

Linux группы

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

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

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

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

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

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

Используя команду groups

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

groups

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

john adm cdrom sudo dip plugdev lpadmin sambashare

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

groups andreyex

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

andreyex : andreyex sudo
Используя команду id

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

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

id andreyex

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

uid=1001(andreyex) gid=1001(andreyex) groups=1001(andreyex),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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть