Users & Groups
Теория
Почти все операционные системы Linux — многопользовательские. Администратор Linux должен уметь создать и настраивать пользователей. В Linux есть 3 группы пользователей:
- Администраторы — привелегированные пользователи с полным доступом к системе. По умолчанию в ОС есть такой пользователь — root
- Локальные пользователи — их учётные записи создаёт администратор, их права ограничены. Администраторы могут изменять права локальных пользователей
- Системные пользователи — учетный записи, которые создаются системой для внутрениих процессов и служб. Например пользователь — nginx
У каждого пользователя есть свой уникальный идентификатор — UID. Чтобы упростить процесс настройки прав для новых пользователей, их объединяют в группы. Каждая группа имеет свой набор прав и ограничений. Любой пользователь, создаваемый или добавляемый в такую группу, автоматически их наследует. Если при добавлении пользователя для него не указать группу, то у него будет своя, индивидуальная группа — с именем пользователя. Один пользователь может одновременно входить в несколько групп. Информацию о каждом пользователе сервера можно посмотреть в файле /etc/passwd
Для более точных настроек пользователей можно использовать подключаемые модули аутентификации (PAM).
PAM (Pluggable Authentication Modules - подключаемые модули аутентификации) — набор библиотек, которые позволяют интегрировать различные методы аутентификации в виде единого API. PAM решает следующие задачи:
- Аутентификация — процесс подтверждения пользователем своей подлиности. Например: ввод логина и пароля, ssh-ключ и т д.
- Авторизация — процесс наделения пользователя правами
- Отчетность — запись информации о произошедших событиях
PAM может быть реализован несколькоми способами:
- Модуль pam_time — настройка доступа для пользователя с учётом времени
- Модуль pam_exec — настройка доступа для пользователей с помощью скириптов
Как это сделать
Отключаем пароль для sudo
Устанавливаем vim как редактор для конфигурация
sudo update-alternatives --config editor
Отключаем ввод пароля sudo
sudo visudo # Меняем строку %sudo ALL=(ALL:ALL) ALL # на строку %sudo ALL=NOPASSWD: ALL
Отключаем пароль sudo для пользователя
Отключаем пароль sudo для конкретного пользователя - https://losst.ru/otklyuchaem-parol-sudo-v-linux Добавляем в конце файла
# ... zoid ALL=(ALL) NOPASSWD: ALL
Отключаем возможность авторизации через пароль
sudo vim /etc/ssh/sshd_config PermitRootLogin no ChallengeResponseAuthentication no PasswordAuthentication no
sudo service ssh restart
Отключаем пароль sudo для команд
# --- create specific file with username sudo visudo -f /etc/sudoers.d/myuser # --- add line myuser ALL=(ALL) NOPASSWD: /usr/sbin/service nginx start,/usr/sbin/service nginx stop,/usr/sbin/service nginx restart # --- close and test (maybe re-login) sudo /usr/sbin/service nginx stop # no password needed