Файл групп: /etc/group
В недавнем
посте мы кратко затронули системный файл "
/etc/group". Сегодня мы чуть подробнее рассмотрим его практическую ценность и структуру содержимого. Го!
Пользователей для различных административных целей, в частности для управления доступом к файлам и другим системным ресурсам, полезно свести в группы. Это нужно по той причине, что не всем юзерам системы доступны для чтения, записи и выполнения все существующие ресурсы.
Мы ведь не можем просто так взять и поменять содержимое какого-нибудь системного конфига из директории
etc. Например
dhcpcd.conf. Нам, для того, чтобы воспроизвести запись, нужно выполнить рад действий:
1) проверить группу, к которой принадлежит файл;
2) проверить права, которыми располагает группа;
$ ls -l | grep dhcp
-rw-r--r-- 1 root root 1429 Mar 31 11:48 dhcpcd.conf
Тут мы видим следующее: файл принадлежит пользователю root и его одноименной группе. Также, права для пользователя, позволяют ему выполнять запись и чтение. Членам группы позволено только читать содержимое файла, т.к. указан только 1 бит "
r".
Давайте, для начала, поменяем файлу группу так, чтобы конкретный пользователь смог к нему обратиться:
$ sudo chgrp xodefender dhcpcd.conf
$ ls -l | grep dhcp
-rw-r----- 1 root xodefender 1437 Sep 27 11:02 dhcpcd.conf
Вот, хорошо, теперь мы, от пользователя xodefender можем, хотя бы, прочитать файл:
$ cat dhcpcd.conf
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
...
Можем ли мы записать что-то... Пока нет. Для этого нам нужно добавить бит "
w" на запись для группы:
$ sudo chmod g+w dhcpcd.conf
$ ls -l | grep dhcp
-rw-rw---- 1 root xodefender 1437 Sep 27 11:05 dhcpcd.conf
Хорошо, теперь с правами все норм, можем воспроизвести запись в файл от пользователя
xodefender:
$ echo "Some useful data" >> dhcpcd.conf
Ага, а если мы хотим выполнять данные операции от пулла доверенных пользователей... В таком случае, нам нужно создать для них группу и присвоить ее целевому файлу. Давайте действовать поступательно и начнем с создания группы:
$ sudo groupadd admins
Список групп с соответствующей информацией можно найти в файле "
/etc/group", который содержит по одной строке на каждую группу. Каждая строка, как показано в следующем примере, состоит из четырех полей, отделенных друг от друга двоеточиями:
$ cat /etc/group
admins:x:1002:
jambit:x:106:claus,felli,frank,harti,markus
Рассмотрим эти поля в порядке следования:
1) имя группы - легко читаемый символьный идентификатор, соответствующий числовому;
2) зашифрованный пароль группы, который, в действительности, хранится в теневом файле групп "
/etc/gshadow";
3) числовой идентификатор группы (
GID);
4) список пользователей, которые входят в группу;
Далее, давайте добавим доверенных пользователей в группу:
$ sudo usermod --append --groups admins xodefender
$ sudo usermod --append --groups admins test_1
$ cat /etc/group | grep admins
admins:x:1002:xodefender,test_1
Теперь нужно повторить процесс из начала поста - изменить группу файла и выставить необходимые права:
$ sudo chgrp admins dhcpcd.conf
$ sudo chmod g+rw dhcpcd.conf
Все, пожалуйста, пользователи
xodefender и
test_1 (участники группы
admins) могут читать файл и записывать в него информацию:
$ su test_1
$ cat dhcpcd.conf
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
...
Linux++ | IT-Образование