В экосистеме 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 таким же образом.