Главная >> Инструкции >> Список пользователей группы в Linux

Список пользователей группы в Linux

Мы уже много раз на этом сайте говорили про группы пользователей в Linux. Это основной и очень удобный способ управления полномочиями пользователей и процессов в этой операционной системе. Список групп, мы знаем, как посмотреть, а что, если нужно узнать, какие пользователи имеют доступ к ресурсам одной из групп?

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


Содержание статьи

Список пользователей группы в Linux

1. Файл /etc/group

Все группы, созданные в ОС Linux собраны в файле /etc/group. Синтаксис записи группы в этом файле следующий:

имя_группы:x:идентификатор:список_пользователей

  • имя_группы - имя, которое используется для управления группой и отображается в выводе команд;
  • x - заглушка для пароля;
  • идентификатор - уникальный идентификатор группы;
  • список_пользователей - все пользователи, которые входят в группу, разделённые запятой.

Таким образом, вы можете посмотреть список пользователей, просто отыскав группу в файле:

Или также можно воспользоваться регулярным выражением grep:

cat /etc/group | grep group7

Например, здесь в группу group7 входит только пользователь sergiy. А вот в группу adm входит sergiy и syslog:

2. Команда members

Следующий способ посмотреть пользователей группы - команда members, в Ubuntu она поставляется по умолчанию. Если в вашем дистрибутиве её нет, то вы можете установить её из официальных репозиториев:

sudo apt install members

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

$ members опции имя_группы

В качестве пользователей можно передать:

  • --all - все пользователи группы;
  • --primary - только те пользователи, для которых эта группа является основной;
  • --secondary - только те пользователи, для которых эта группа является дополнительной;
  • two-lines - отобразить пользователей, для которых данная группа является основной и тех для кого она установлена в качестве дополнительной.

Например, посмотрим пользователей группы adm:

members adm

Или посмотрим пользователей, которые выбрали группу adm в качестве основной:

members --primary adm

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

members --secondary adm

3. Команда lid

Команда lid тоже может отображать информацию о группах. Но перед тем, как вы сможете её использовать, её надо установить. Утилита входит в пакет libuser. В Ubuntu команда выглядит так:

sudo apt install libuser

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

sudo libuser-lid -g adm

Опция -g обязательна. Если её не передать, утилита покажет список групп текущего пользователя. Если не передать имя группы, то утилита покажет список пользователей основной группы текущего пользователя.

Выводы

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

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

5 комментариев к “Список пользователей группы в Linux”

  1. Если уж пользовать grep, то во-первых, совершенно не обязательно отдавать поток cat-ом, потому что grep сам умеет читать текстовые файлы, и во-вторых, в регулярном выражении grep перед именем группы ставьте "морковку", тогда выхлоп будет более оптимальным.

    grep ^group_name /etc/group

    Таким образом вы избавитесь и от программного канала, и от лишних строк в выхлопе.

    Ответить
  2. Чуток добавлю:

    Команда groups без параметров расскажет пользователю, в каких группах он состоит.
    Команда groups alex расскажет, в каких группах состоит alex.

    В силу моей деятельности я часто встречаюсь со случаями, когда пользователи (конкретно -- разработчики устройств на микроконтроллерах) не могут подключить какой своё устройство или программатор к компу. Нужно-то всего ничего!

    Нужно узнать, какую группу образует порт устройства и добавить пользователя (разработчика) в эту группу.

    Группу порта устройства можно узнать командой ls. Например, у нас есть железка на базе какого-нибудь микроконтроллера, которая подключается к компу посредством USB-порте. В железке используется микросхема конвертера USB/UART (типа FT232RL, CH340G, CP2103, ...) Всё вроде бы хорошо, но комповая программа не хочет соединяться с железкой. Тогда выполняем команду:

    $ ls -al /dev/ttyUSB0
    crw-rw---- 1 root dialout 188, 0 окт 30 15:13 /dev/ttyUSB0

    Здесь мы видим, что владельцем устройства является root, но устройство также входит в группу dialout. Теперь, чтобы получить доступ к устройству, нам (пользователю) нужно тоже входить в эту же группу. Выполняем команду:

    # adduser alex dialout # Команда выполняется из-под root-а!!!

    Затем заново входим в систему и с устройством можно работать.

    И если теперь выполнить команду groups, то можно заметить, что пользователь сейчас входит также и в группу dialout.

    Спасибо!
    И поправьте, если я что-то не правильно сказал.

    Ответить
  3. у меня ls -alF показывает владельцев каталогов и файлов 10668 (папка с JDK) нет такого пользователя и группы. Это нормально вообще? как мне быть теперь если я захочу OpenJDK? каких владельцев мне указывать с chown ?

    Ответить
    • Это нормально, т.к. скорее всего вы импортировали файл для установки из другой системы, в которой пользователь 10668 действительно существует. Можете изменить владельца на root.

      Ответить

Оставьте комментарий