Skip to main content

Управление группами и пользователями

Команды групп

Команда Описание
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

В списке могут быть и файлы, доступные для редактирования. Например 
/usr/bin/nano /etc/ssh/sshd_config

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

для логического разбиения одного файла на группы. Подключается любой файл, если он не содержит в названии точку (.) или не заканчивается тильдой (~). 
Файлы анализируются в лексическом порядке. Например, /etc/sudoers.d/01_first анализируется перед /etc/sudoers.d/10_second. 
После анализа файлов в каталоге контроль возвращается к файлу, который содержал директиву @includedir.

Получается нужны шаблоны для определения действий в зависимости от роли пользователей. Их может быть немало)

Требования к паролю

sudo apt install libpam-pwquality