Фон
Я знаю разницу между su -
, sudo su -
и sudo <command>
:
su -
- переключает пользователя в root, требует пароль rootsudo su -
- переключает пользователя в root, требует только пароль текущего пользователяsudo <command>
- предоставляет root-доступ только для определенной команды; требуется только пароль текущего пользователя
Мой вопрос о том, является ли использование sudo su -
безопасным способом в производственной среде.
Некоторые мысли:
Похоже, разрешение
sudo su -
создает угрозу безопасности, поскольку доступ к учетной записи root зависит от паролей отдельных пользователей. Конечно, это может быть смягчено путем применения строгой политики паролей. Я не думаю, чтоsu -
это лучше, так как это потребует от администратора предоставить действительный пароль root.Разрешение пользователям полностью переключаться на корневую учетную запись затрудняет отслеживание того, кто вносит изменения в систему. Я видел случаи на моей повседневной работе, когда нескольким пользователям предоставляется
sudo su -
доступ. Первое, что делают пользователи при входе в систему, это запускаютsudo su -
перед началом работы. Затем однажды что-то ломается, и нет возможности проследить, кто бежалrm -rf *
в неправильном каталоге.
Вопросов
Учитывая вышеупомянутые проблемы, действительно ли это хорошая идея, чтобы позволить пользователям использовать sudo su -
или даже su -
вообще?
Существуют ли какие-либо причины, по которым администратор настраивал учетные записи пользователей вместо sudo su -
или без (кроме лени)?su -
sudo <command>
Примечание. Я игнорирую случай, когда пользователь работает sudo su -
или su -
администратор должен внести изменения в систему, когда прямой доступ ssh был отключен для пользователя root.
sudo su -
довольно глупо, так какsudo -i
делает по существу то же самое, с меньшим количеством нажатий клавиш.sudo bash
просто, чтобы избежать некоторых накладных расходов при входе в систему. Однако, если подумать, этого может избежать не так много, как я себе представляю.sudo -s
.Ответы:
Давайте посмотрим ваши случаи:
запустит / bin / sh от имени пользователя root с использованием среды root. Необходим пароль пользователя root, и запись в журнал МОЖЕТ регистрироваться в зависимости от настроек системного журнала (обычно по умолчанию это /var/log/auth.log).
запустит shell от имени пользователя root с использованием текущего набора переменных среды (с некоторыми исключениями, которые будут определены в файле sudoers). Пароль - это пароль исходного пользователя, а НЕ пароль пользователя root. sudo обычно регистрируется.
запустит оболочку (обычно / bin / sh) в качестве пользователя root, настроив среду в качестве пользователя root. Для этого потребуется пароль исходного пользователя, и это, как правило, будет зарегистрировано.
Иногда необходимо иметь корневую среду поверх своей собственной, поэтому su - это подходящий метод. Помните, что sudo все равно будет регистрировать использование команды оболочки в любом случае.
источник
Нет, не по моему мнению. Это не имеет практического преимущества перед тем, как позволить им su, за исключением того, что для этого им не нужен пароль root.
Поскольку я всегда отключаю вход в систему с правами root, su необходим и сбалансирован, делает сервер более безопасным.
источник
По-видимому, у OP есть много веских причин, чтобы не разрешать / поощрять запуск общих видов использования
sudo bash
илиsudo su -
поскольку это переключает их на всесильный режим, внутреннее устройство которого обычно не регистрируется. И они могут забыть, что находятся в этом режиме и сделать что-то ... прискорбно.Поэтому кажется более безопасным ограничивать запуск большинства пользователей
sudo on/a/particular/command/
или список команд. Таким образом, каждая команда sudo регистрируется.Будете ли вы сталкиваться с исключениями на практике? Конечно. Является ли реакция на такие исключения возвращением к ленивой практике без ограничений -
sudo su
вероятно, нет.источник