Назад | Перейти на главную страницу

Считается ли «sudo su -» плохой практикой?

Задний план

Я знаю разницу между su -, sudo su -, и sudo <command>:

Мой вопрос в том, использовать ли sudo su - это безопасная практика в производственной среде.

Некоторые мысли:

  1. Похоже, что позволяет sudo su - представляет угрозу безопасности, делая доступ к учетной записи root зависимым от индивидуальных паролей пользователей. Конечно, это можно смягчить, установив строгую политику паролей. Я не думаю su - лучше, так как для этого потребуется, чтобы администратор поделился фактическим паролем root.

  2. Разрешение пользователям полностью переключиться на учетную запись root затрудняет отслеживание того, кто вносит изменения в систему. Я видел случаи на своей основной работе, когда нескольким пользователям давали sudo su - доступ. Первое, что делают пользователи при входе в систему, запускается sudo su -, перед началом работы. Затем однажды что-то сломается, и никто не сможет отследить, кто бежал. rm -rf * в неправильном каталоге.

Вопросы

Учитывая вышеупомянутые проблемы, стоит ли разрешить пользователям использовать sudo su - или даже su - вообще?

Есть ли причины, по которым администратор настраивал учетные записи пользователей для sudo su - или su - вместо того sudo <command> (кроме лени)?

Примечание: Я игнорирую случай, когда пользователь запускает sudo su - или su - Администратору необходимо внести изменения в систему, если для пользователя root отключен прямой доступ по ssh.

Давайте посмотрим на ваши кейсы:

 su -

запустит / bin / sh от имени пользователя root, используя корневую среду. Требуется пароль root, и запись МОЖЕТ регистрироваться в журнале в зависимости от настроек системного журнала (обычно по умолчанию это /var/log/auth.log).

 sudo /bin/sh

запустит оболочку от имени пользователя root, используя текущий набор переменных среды (с некоторыми исключениями, которые будут определены в файле sudoers). Пароль является паролем исходного пользователя, а НЕ паролем пользователя root. sudo обычно регистрируется.

 sudo su -

запустит оболочку (обычно / bin / sh) как пользователь root, настроив среду как пользователь root. Для этого потребуется пароль исходного пользователя, и он обычно регистрируется.

Иногда необходимо иметь корневую среду поверх вашей собственной среды, поэтому su - подходящий метод. Помните, что sudo все равно будет регистрировать использование команды оболочки в любом случае.

OP, похоже, предоставляет множество веских причин, чтобы не разрешать / поощрять общее использование для запуска sudo bash или sudo su - поскольку это переключает их во всесильный режим, внутренняя часть которого обычно не регистрируется. И они могут забыть, что находятся в этом режиме, и сделать что-то ... достойное сожаления.

Таким образом, кажется более безопасным ограничить большинство пользователей запуском sudo on/a/particular/command/ или список команд. Таким образом регистрируется каждая команда sudo.

Будете ли вы сталкиваться с исключениями на практике? Конечно. Будет ли реакция на такие исключения возвращаться к ленивой практике неограниченного sudo su --возможно нет.

* Учитывая вышеупомянутые проблемы, можно ли когда-либо разрешить пользователям использовать sudo su *

Нет, на мой взгляд, нет. У него нет практических преимуществ перед тем, чтобы разрешить им использовать su, за исключением того, что для этого им не нужен пароль root.

или су - вообще?

Поскольку я всегда отключаю вход в систему с правами root, su необходим и, по сути, делает сервер более безопасным.