Android

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

Мультики про машинки новые серии 2017 - Кто сильнее! Лучшие мультфильмы для детей /#мультик игра

Мультики про машинки новые серии 2017 - Кто сильнее! Лучшие мультфильмы для детей /#мультик игра

Оглавление:

Anonim

В 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 ).

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

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

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

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

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

Чтобы getent group список всех членов группы, используйте команду 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.

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

Терминал