Группы в Linux: полный гайд по созданию и управлению правами
Вы когда-нибудь задумывались, как нескольким пользователям одновременно работать с одними и теми же файлами, не создавая неразбериху с правами? Или как тонко настроить доступ для системного сервиса, не выдавая ему полный контроль? Ответ кроется в одном из самых мощных, но недооцененных инструментов Linux — группах пользователей.
Это не просто скучная системная настройка, а ключ к эффективному управлению вашим сервером или рабочей станцией. Группы позволяют гибко распределять доступ, экономя ваше время и нервы. Забудьте о сложных ACL — часто всё решается на уровне групп.
В этом материале вы найдете не только базовые команды. Мы разберем создание групп двумя разными способами: стандартным, с помощью утилиты `groupadd`, и ручным — прямым редактированием системных файлов. Вы узнаете, как назначить группе собственный идентификатор (GID) и для чего это может понадобиться.
Мы также затронем тему паролей для групп и объясним, в каких редких случаях это может быть полезно, но почему этим методом лучше не злоупотреблять из соображений безопасности. Вы поймете разницу между временным доступом к группе и постоянным добавлением пользователя.
А чтобы вы не наделали ошибок, мы отдельно поговорим о том, как безопасно удалить ненужную группу, не нарушив работу системы. Готовы превратиться из новичка, который боится командной строки, в уверенного администратора? Тогда начинаем погружение в мир групп Linux — ваш путь к порядку и контролю начинается здесь.
Группы - очень удобный инструмент распределения прав в Linux. Благодаря группам можно разрешить нескольким пользователям доступ к одному файлу или папке, а другим запретить, не прибегая к более сложным технологиям, таким, как ACL-списки. Системные сервисы тоже запускаются от имени определённых пользователей, и поэтому группы позволяют очень тонко настроить права доступа к нужным файлам для сервисов, не давая им полного доступа к системе.
В этой небольшой статье мы рассмотрим, как создать группу Linux разными способами, а также поговорим о дополнительных настройках группы.
Содержание статьи
Как создать группу Linux
Для создания групп в Linux используется команда groupadd, давайте рассмотрим её синтаксис и опции:
$ groupadd опции имя_группы
А теперь разберём опции утилиты:
- -f - если группа уже существует, то утилита возвращает положительный результат операции;
- -g - установить значение идентификатора группы GID вручную;
- -K - изменить параметры по умолчанию автоматической генерации GID;
- -o - разрешить добавление группы с неуникальным GID;
- -p - задаёт пароль для группы;
- -r - указывает, что группа системная;
- -R - позволяет изменить корневой каталог.
Перейдём к практике. Всё очень просто. Создадим группу group1:
sudo groupadd group1
Теперь вы можете убедится, что группа была добавлена в файл /etc/group:
cat /etc/group | grep group1
Система создала группу с GID 1001. Вы можете вручную указать GID вашей группы с помощью опции -g;
sudo groupadd -g 1006 group6
Также есть возможность задать пароль для группы. Он служит для того, чтобы пользователи, не состоящие в группе, смогли получить к ней доступ с помощью команды newgrp. Эта команда делает пользователя участником указанной группы до конца сеанса. Из соображений безопасности этот метод использовать не рекомендуется, поскольку один пароль будут знать несколько пользователей. Чтобы создать группу с паролем, сначала создаём пароль командой:
perl -e 'print crypt("12345", "xyz"),"n"'
Здесь xyz - это случайная комбинация символов для увеличения надёжности пароля, а 12345 - ваш пароль. Мы должны передать утилите именно зашифрованный пароль, если передать его в открытом виде, то ничего работать не будет. Теперь создаём группу с только что полученным паролем:
sudo groupadd -p sajEeYaHYyeSU group7
Затем можно попытаться получить временный доступ к ресурсам группы с помощью newgrp:
newgrp group7
groups
Нам надо ввести пароль, который мы раньше шифровали, и теперь до конца сеанса наш пользователь находится в группе. Если вы хотите добавить пользователя в группу навсегда, то надо использовать команду usermod:
sudo usermod -aG group7 имя_пользователя
Создание группы Linux вручную
Если вы не хотите создавать группу с помощью команды, это можно сделать, просто редактируя конфигурационные файлы. Все группы, которые существуют в системе, находятся в файле /etc/group. Если мы хотим добавить новую, достаточно добавить строчку с таким синтаксисом:
имя_группы:х:gid:список_пользователей
Разберём более подробно, какой параметр за что отвечает:
- имя_группы - имя, которое будет использоваться для операций с группой;
- x - заглушка пароля группы, пароль указывается в файле /etc/gshadow, если в этом есть необходимость;
- gid - идентификатор группы;
- список_пользователей - пользователи, разделённые запятыми, которые входят в группу.
Таким образом, чтобы создать группу group7, достаточно добавить строку:
sudo vi /etc/group
group7:x:1007:
Всё. Теперь нашу группу можно использовать, например, добавим в неё пользователя:
usermod -aG group7 имя_пользователя
Вы уже знаете, как создать группу пользователей linux двумя способами, теперь разберёмся, как её удалить.
Как удалить группу в Linux
Если вы создали группу неправильно или считаете, что она не нужна, то её можно удалить. Для этого используйте:
sudo groupdel имя_группы
Только ни в коем случае не удаляйте системные группы, они нужны и используются системой, а их удаление может сломать работу некоторых программ.
Выводы
В этой небольшой статье мы рассмотрели создание группы в Linux, а также то, как удалить созданную группу. Как видите, это довольно просто. Ели у вас остались вопросы, спрашивайте в комментариях!