Как отключить su для пользователей Sudo

Команда su – это специальная команда Linux, которая позволяет запускать команду от имени другого пользователя и группы. Она также позволяет вам переключиться на учетную запись root (если она запускается без каких-либо аргументов) или другую указанную учетную запись пользователя.

Всем пользователям по умолчанию разрешен доступ к команде su. Но как системный администратор вы можете отключить доступ su для пользователя или группы пользователей, используя файл sudoers, как показано ниже.

Файл sudoers управляет плагином политики безопасности sudo, который определяет привилегии пользователя sudo. Команда sudo позволяет пользователям запускать программы с правами безопасности другого пользователя (по умолчанию, как пользователь root).

Чтобы переключиться на другую учетную запись пользователя, пользователь может запустить команду su из своего текущего сеанса входа в систему, как показано на рисунке. В этом примере пользователь aaronk переключается на учетную запись testuser. Пользователю aaronk будет предложено ввести пароль для учетной записи testuser:

$ su testuser

Переключитесь на другого пользователя
Переключитесь на другого пользователя

Чтобы переключиться на учетную запись root, пользователь должен иметь пароль root или привилегии для вызова команды sudo. Другими словами, пользователь должен существовать в файле sudoers. В следующем примере пользователь aaronk (пользователь sudo) переключается на учетную запись root.

После вызова sudo пользователю aaronk предлагается ввести свой пароль, если он действителен пользователю предоставляется доступ к интерактивной оболочке в качестве root:

$ sudo su

Переключение на пользователя Root
Переключение на пользователя Root

Отключить доступ su для пользователя Sudo

Отключаем доступ su для пользователя с sudo. Например пользователь aaronk, сначала создайте резервную копию исходного файла sudoers, расположенного в /etc/sudoers. Делается это следующим образом:

$ sudo cp /etc/sudoers /etc/sudoers.bak

Далее требуется открыть файл sudoers, используя следующую команду.

Обратите внимание, что не рекомендуется редактировать файл sudoers вручную, всегда используйте команду visudo:

$ sudo visudo

=

В разделе псевдонимы команд создайте следующий псевдоним:

Cmnd_Alias DISABLE_SU = /bin/su

Затем добавьте следующую строку в конце файла, замените имя пользователя aaronk на пользователя для которого вы хотите отключить доступ su:

aaronk ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU

Сохраните файл и закройте его.

Далее проверьте, работает ли то что мы сделали. Система должна вернуть сообщение об ошибке, подобное этому: “Извините, пользователю aaronk не разрешено выполнять ‘/bin/su’ как root на tecmint.”.

$ sudo su

Отключить доступ Su к пользователю Sudo
Отключить доступ Su к пользователю Sudo

Отключить su для пользователей Sudo

Вы также можете отключить доступ su для группы пользователей sudo. Например, чтобы отключить доступ su для всех пользователей в группе admin, измените строку:

%admin ALL=(ALL) ALL

на вот эту строку:

%admin ALL=(ALL) ALL, !DISABLE_SU

Сохраните файл и закройте его.

Чтобы добавить пользователя в группу администратора, выполните команду usermod  (username заменить имя пользователя фактическим пользователем):

$ sudo usermod -aG admin username

Для получения дополнительной информации о susudo и sudoers посмотрите их справочные страницы:

  1. $ man su
  2. $ man sudo
  3. $ man sudeors
Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.

  1. alef

    Спасибо, за статью.

    Ответить
    1. Nazario автор

      Всегда пожалуйста.

      Ответить
  2. dnf

    Я не вижу смысла запускать «sudo su», поскольку есть много других способов получить доступ с помощью sudo. Самый простой — «sudo -i», но «sudo /bin/sh» или любая другая оболочка будет работать нормально. Нереально даже отключить все программы-оболочки вручную, поскольку пользователи могут скопировать исполняемый файл куда-нибудь еще.
    Проще говоря, если ВСЕ есть в списке программ, то пользователь может делать все, что захочет.
    ! operator имеет смысл только в том случае, если пользователь уже имеет ограниченный доступ и вы хотите ограничить его еще больше. Например, разрешите aaronk выполнять все в /usr/sbin, кроме /usr/sbin/foobar:

    aaronk ALL = /usr/sbin/ , !/usr/sbin/foobar

    Ответить