Группы Ubuntu
В своей прошлой статье я рассмотрел пользователей Ubuntu. А там где есть пользователи всегда будут и группы. Пришло время разобраться что такое группы Ubuntu. Рассмотрим как создавать, изменять, удалять группы и пользователей в них.
Список групп
Использование групп пользователей в Ubuntu позволяет удобно делегировать полномочия на использование ресурсов. Самый простой пример это доступ к папке. Мы создаем папку и даем определенной группе права доступа к этой папке. Все пользователи соответствующей группы получат доступ к папке. Учитывая тот факт что за каждый процесс в системе отвечает свой файл, это даёт эффективный инструмент распределения доступа с помощью групп.
Список всех групп в системе находится в файле /etc/group. Разберем в каком виде хранятся данные в файле
cat /etc/group
Файл имеет вполне читаемый вид и структуру схожую с файлом пользователей Ubuntu. Перечислю значение полей на примере шаблона: name:password:UID:users
- name – название группы
- password – пароль. Функция больше не используется, значение всегда x
- GID – идентификатор
- users – пользователи состоящие в группе
Увидеть список групп в которых состоит текущий пользователей можно используя команду groups
Среди перечисленных групп мы видим cdrom. Как известно в Linux за каждое оборудование отвечает свой файл. Добавив пользователя в определенную группу можно разрешить ему доступ к указанному оборудованию. Как видно на скриншоте пользователь arthur имеет доступ к CD-ROM установленному в системе.
Создание группы
Создать новую группу можно используя команду groupadd. Перечислю основные параметры при создании новой группы
- -f – если группа с указанным именем существует, прервать выполнение команды без вывода ошибки
- -g – указать свой GID для новой группы
- -h – выводит помощь по команде
- -p – установить зашифрованный пароль для группы
- -r – создать системную группу
Для примера создам две группы: managers и newadmin для менеджеров и администраторов.
sudo groupadd managers
sudo groupadd -r newadmin
Добавим пользователя arthur в группу newadmin
sudo usermod -aG newadmin arthur
Изменение группы
Существующую группу можно изменить с помощью команды groupmod
- -g – изменить GID группы
- -n – переименовать группу
- -o – разрешить использовать группы с одинаковым GID
Изменим название группы managers на marketing
sudo groupmod -n marketing managers
После ключа -n указываем сначала новое затем текущее название группы
Удаление группы
Удаление группы происходит командой groupdel. Необходимо помнить, что у каждого пользователя есть основная группа и дополнительные. Удалить группу можно только в том случае, если она не является основной для какого-либо пользователя в системе. Однако если указать при удалении параметр -f то можно удалить группу даже если она основная для пользователя.
sudo groupdel marketing
В указанном примере я удалил группу marketing.
Пользователи и группы
Мы рассмотрели как управлять группами, теперь настал момент изучить как же управлять пользователями в группах. Для данных целей можно использовать gpasswd. Команда позволяет добавлять, удалять и выводить список пользователей в группе. Перечислю основные параметры:
- -a – добавить пользователя в группу
- -d – удалить пользователя из группы
- -r – удалить пароль группы. После удаления пароль станет пустым. Только члены указанной группы смогут использовать newgrp для входа в группу.
- -R – ограничить доступ к группе. Пароль станет равным ! и только члены группы знающие пароль смогут входить с использованием newgrp
- -M – указать список членов группы
- -A – перечислить администраторов группы
Особенностью утилиты gpasswd является невозможность совместного использования параметров (за исключением -A и -M).
Несколько примеров для закрепления. Добавим пользователя arthur в группу sudo.
Запускаем gpasswd с повышенными правами суперпользователя
sudo gpasswd -a arthur sudo
После добавления убедимся что пользователь добавлен в нужную группу
groups
Группу sudo я использовал не случайно. Довольно часто пользователи Linux задаются вопросом: как добавить пользователю права администратора? Для этого необходимо добавить пользователя в группу sudo. Что мы и сделали. Заключительным тестом давайте удалим пользователя arthur из группы newadmin
sudo gpasswd -d arthur newadmin
Добавлять пользователя в группы можно и с помощью утилиты usermod. Её подробное описание есть в статье о пользователях Ubuntu.
Видео по статье