Управление группами и пользователями
Команды групп
Команда | Описание |
sudo adduser username |
интерактивно создает пользователя с паролем и группой. Поведение настраивается в файлах /etc/adduser.conf Нельзя использовать в скриптах. При помощи encryptfs-utils можно зашифровать домашнюю директорию --encrypt-home |
sudo useradd username |
создает пользователя без группы и пароля. Поведение настраивается флагами и /etc/login.defs. -m создает домашнюю директорию -d определяет домашнюю директорию -s определяет консоль по умолчанию |
groups | Список групп |
sudo visudo |
Настройка прав групп -f fname определяет дополнительный файл из include директории |
sudo usermod -a -G sudo sergey |
Добавить пользователя в группу sudo. -a оставляет существующие группы. Без -a пользователь будет исключен из остальных групп
|
Настройка visudo
Элемент | Описание |
# | Комментарий |
% в начале строки | Работа с группой. %sudo обозначает настройку группы sudo |
Структура назначения прав |
%sudo ALL=(ALL) ALL обозначает, что группа sudo может выполнять на всех хостах от имени всех пользователей любые действия |
NOPASSWD: |
без ввода пароля sudo %sudo ALL=(ALL) NOPASSWD: ALL |
User_Alias alias_name = username1, username2 |
Псевдоним для имен пользователей. User_Alias WEBADMINS = sergey, dimitry |
Cmnd_Alias alias_name = cmnd1, cmnd2 |
Псевдоним для команд. Cmnd_Alias SOFTWARE /bin/apt /bin/apt-get Если команда перечисляется без субкоманд, то пользователю даются права на все субкоманды. Иначе, при перечислении субкоманд - только на них. Но при добавлении субкоманд требуется указывать полную строку. Например, если указать /ust/bin/systemctl status, то пользователь будет иметь право вызвать эту команду, но она нефункциональна - требует имя сервиса, а его задать уже нельзя. Можно использовать * /ust/bin/systemctl status * /ust/bin/systemctl * sshd В списке могут быть и файлы, доступные для редактирования. Например |
WEBADMINS ALL=(ALL) SOFTWARE |
Пользователи WEBADMINS могут запускать команды SOFTWARE через sudo |
Host_Alias MAILSERVERS = smtp |
Используется при распространении единого файла sudoers на все машины в сети. Ограничивает хосты, где работает данное правило WEBADMINS WEBSERVERS=(ALL) WEBCOMMANDS |
Defaults timestamp_timeout = 0 |
Таймаут при необходимости ввода пароля sudo. Можно назначить только определенным пользователям Defaults:dmitry timestamp_timeout = 0 |
@includedir dirname |
для логического разбиения одного файла на группы. Подключается любой файл, если он не содержит в названии точку (.) или не заканчивается тильдой (~). |
Получается нужны шаблоны для определения действий в зависимости от роли пользователей. Их может быть немало)