Команда su – это специальная команда Linux, которая позволяет выполнить команду от имени другого пользователя и группы.
Она также позволяет переключиться на учетную запись root (если выполняется без аргументов) или другую указанную учетную запись пользователя.
По умолчанию доступ к команде su разрешен всем пользователям.
Но как системный администратор, вы можете запретить доступ к su для пользователя или группы пользователей, используя файл sudoers, как описано ниже.
Дополнение статьи:
🐧 Как отключить «sudo su» для пользователей в конфигурационном файле sudoers
Файл sudoers управляет плагином политики безопасности sudo, который определяет привилегии sudo пользователя.
Команда sudo позволяет пользователям запускать программы с привилегиями безопасности другого пользователя (по умолчанию – пользователя root).
Чтобы переключиться на учетную запись другого пользователя, пользователь может выполнить команду su из текущей сессии входа в систему, как показано на рисунке.
В этом примере пользователь переключается на учетную запись testuser.
Пользователю будет предложено ввести пароль для учетной записи testuser:
$ su testuser
Чтобы перейти под учетную запись root, пользователь должен иметь пароль root или обладать привилегиями для вызова команды sudo.
Другими словами, пользователь должен существовать в файле sudoers.
В этом примере пользователь kadmin (пользователь sudo) переключается на учетную запись root.
После вызова команды sudo пользователю предлагается ввести пароль, если он правильный, пользователю предоставляется доступ к интерактивной оболочке как root:
$ sudo su
Отключение доступа su для пользователя Sudo
Чтобы отключить доступ su для пользователя sudo, например, пользователя kadmin, сначала создайте резервную копию исходного файла sudoers, расположенного по адресу /etc/sudoers, следующим образом:
$ sudo cp /etc/sudoers /etc/sudoers.bak
Затем откройте файл sudoers с помощью следующей команды.
Обратите внимание, что не рекомендуется редактировать файл sudoers вручную, всегда используйте команду visudo:
$ sudo visudo
В разделе алиасов команд создайте следующий:
Cmnd_Alias DISABLE_SU = /bin/su
Затем добавьте следующую строку в конец файла, замените имя пользователя kadmin на пользователя, для которого вы хотите отключить доступ su:
kadmin ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU
Сохраните файл и закройте его.
Затем проверьте работоспособность настройки следующим образом.
Система должна выдать сообщение об ошибке следующего вида:
“Sorry, user kadmin is not allowed to execute ‘/bin/su’ as root on itsecforu.”.
$ sudo su
Отключение доступа su для группы пользователей sudo
Вы также можете отключить доступ su для группы пользователей sudo.
Например, чтобы отключить доступ su для всех пользователей группы admin, измените строку
%admin ALL=(ALL) ALL
на эту:
%admin ALL=(ALL) ALL, !DISABLE_SU
Сохраните файл и закройте его.
Чтобы добавить пользователя в группу администраторов, выполните команду usermod (замените username на реального пользователя):
$ sudo usermod -aG admin username
Для получения дополнительной информации о su, sudo и sudoers ознакомьтесь с их man-страницами:
$ man su $ man sudo $ man sudoers
см.также: