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

В экосистеме Linux совокупность пользователей называется «Группа». Когда пользователь добавляется в группу, мы определяем разрешения пользователя Linux. Группы также определяют, к каким файлам, настройкам и папкам пользователь должен иметь доступ.

Проще говоря, группы помогают вам узнать и установить привилегии, такие как чтение (r), запись (w) и выполнение (x) над ресурсом, общим для пользователей. Вы также можете изменять эти разрешения по мере необходимости.

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

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


Важные предварительные условия

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

Группа: совокупность пользователей в системе Linux. Один пользователь может быть членом более чем одной группы. Группа определяет, какие разрешения есть у пользователя.

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

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

Файл /etc/group: В Linux членство в группе контролируется файлом /etc/group. Это простой текстовый файл, содержащий список групп и пользователей, принадлежащих каждой группе.

Файл /etc/passwd: Этот файл содержит информацию обо всех учетных записях пользователей в системе. В этом файле представлена ​​запись об одной учетной записи пользователя на строку.


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

Использование команды groups — это очень простой процесс для перечисления групп, к которым принадлежит текущий пользователь. Вы также можете использовать эту команду для перечисления групп определенного пользователя, зарегистрированного в системе.

Синтаксис:

groups

Выход:

gaurav@ubuntu:~$ groups
gaurav adm cdrom sudo dip plugdev lpadmin sambashare
gaurav@ubuntu:~$

Поиск группы определенного пользователя.

Синтаксис:

groups [username]

Пример:

gaurav@ubuntu:~$ groups tomcat
tomcat: tomcat lpadmin sambashare
gaurav@ubuntu:~$ 

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


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

Использование команды id отображает информацию о группе пользователя. Она показывает такие параметры, как uid (идентификатор пользователя), gid (идентификатор группы) и список групп, к которым принадлежит пользователь.

Синтаксис:

id [username]

Пример:

gaurav@ubuntu:~$ id tomcat
uid=1002(tomcat) gid=1002(tomcat) groups=1002(tomcat),113(lpadmin),128(sambashare)
gaurav@ubuntu:~$

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

Пример:

gaurav@ubuntu:~$ id
uid=1000(gaurav) gid=1000(gaurav) groups=1000(gaurav),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
gaurav@ubuntu:~$

Здесь отображается информация о группе текущего пользователя.


Использование файла /etc/group

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

Вы можете использовать команду cat, less или grep, чтобы открыть список содержимого этого файла.

less /etc/group

Выход:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,gaurav
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:gaurav
floppy:x:25:
tape:x:26:
sudo:x:27:gaurav
audio:x:29:pulse
dip:x:30:gaurav,batman
www-data:x:33:

Это выведет список всех групп в системе Linux.


Список всех групп с помощью команды getent

Команда getent может быть использована для отображения списка всех доступных групп в вашей системе Linux. Вывод аналогичен содержимому файла /etc/group.

Использование команды getent group отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf.

Синтаксис:

getent group

Пример:

gaurav@ubuntu:~$ getent group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,gaurav
tty:x:5:
disk:x:6:
lp:x:7:
mse
dip:x:30:gaurav,batman
:x:39:
stmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:gaurav
staff:x:50:
games:x:60:
users:x:100:
106:
crontab:x:107:
vahi:x:120:
bluetooth:x:121:
scanner:x:122:saned
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
trinity:x:1000:
sambashare:x:128:gaurav
mongodb:x:130:mongodb
guest-tqrhc7:x:999:
guest-piinii:x:998:
scala:x:997:
sbt:x:996:
guest-oi9xaf:x:995:
tomcat:x:1001:
tomcat7:x:132:
tomcat8:x:133:
geoclue:x:105:
gdm:x:134:
mysql:x:129:
couchdb:x:131:
temporary:x:1002:

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

getent group | grep [username]

Пример:

gaurav@ubuntu:~$ getent group | grep gaurav
adm:x:4:syslog,gaurav
cdrom:x:24:gaurav
sudo:x:27:gaurav
dip:x:30:gaurav,batman
plugdev:x:46:gaurav
lpadmin:x:113:gaurav
gaurav:x:1000:
sambashare:x:128:gaurav
gaurav@ubuntu:~$ 

Все группы, связанные с пользователем gaurav, теперь отображаются на терминале.


Использование команды libuser-lid

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

ПРИМЕЧАНИЕ: Эта команда требует привилегий sudo. В противном случае вы столкнетесь со следующей ошибкой-

No user name specified,
Error initializing libuser: not executing with superuser privileges

Если утилита libuser-lid недоступна в вашем дистрибутиве, вы можете использовать следующую команду для ее установки.

Для пользователей Ubuntu и Debian:

sudo apt-get update
sudo apt-get install libuser

Для CentOS, Fedora и других дистрибутивов:

sudo yum install libuser

Синтаксис:

sudo libuser-lid [username]

Пример:

gaurav@ubuntu:~$ sudo libuser-lid gaurav

Выход:

adm(gid=4)
cdrom(gid=24)
sudo(gid=27)
dip(gid=30)
plugdev(gid=46)
lpadmin(gid=113)
trinity(gid=1000)
sambashare(gid=128)

Здесь перечислены все группы, связанные с введенным именем пользователя.


Заключение

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