Как просмотреть группы в Linux

12 set 2022 2 min di lettura
Как просмотреть группы в Linux
Indice dei contenuti

.

Введение

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

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

Группы в Linux

Существует два типа групп, к которым может принадлежать пользователь:

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

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

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

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

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

Использование команды групп

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

groups

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

noviello sudo plugdev lpadmin

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

groups noviello

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

noviello: noviello sudo

Использование идентификатора команды

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

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

id noviello

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

uid=1001(noviello) gid=1001(noviello) groups=1001(noviello),27(sudo)

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

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

id -nG
noviello sudo plugdev lpadmin

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

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

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

getent group ftp

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

ftp:x:126:piero,ftpuser

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

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

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

less /etc/group

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

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

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.