Главная >> Инструкции >> Список пользователей группы в 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. Как видите, здесь нет ничего сложного. Если у вас остались вопросы, спрашивайте в комментариях!

Pеклама
Посмотреть детали

Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали

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

6 комментариев к “Список пользователей группы в 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.

      Ответить
  4. cat /etc/group | grep group7 покажет не только строки с пользователями группы group7 но и строки с пользователями группы group77 и вообще group7*, а также строки в которых встречаются пользователи (члены групп) с именами group7* (если кому-то захочется так назвать пользователей).
    Минимальные изменения приводящие к успешному успеху:
    cat /etc/group | grep "^group7:"
    Как говорится, надо переделать (c)

    Ответить

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