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

13

Фон

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

  • su - - переключает пользователя в root, требует пароль root
  • sudo su - - переключает пользователя в root, требует только пароль текущего пользователя
  • sudo <command>- предоставляет root-доступ только для определенной команды; требуется только пароль текущего пользователя

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

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

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

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

Вопросов

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

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

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

Kingand
источник
4
sudo su -довольно глупо, так как sudo -iделает по существу то же самое, с меньшим количеством нажатий клавиш.
Майкл Хэмптон
Я согласен с @MichaelHampton. Тем не менее, я обычно запускаю sudo bashпросто, чтобы избежать некоторых накладных расходов при входе в систему. Однако, если подумать, этого может избежать не так много, как я себе представляю.
ericx
2
@ericx Рассмотрим также sudo -s.
Майкл Хэмптон

Ответы:

11

Давайте посмотрим ваши случаи:

 su -

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

 sudo /bin/sh

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

 sudo su -

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

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

Якорь,
источник
Я полностью пропустил разницу в окружении между sudo и su. Спасибо!
Кинганд
0

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

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

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

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

Рон Лоухорн
источник
2
Отсутствие необходимости в том, чтобы каждый активно делился паролем root, имеет важные культурные преимущества безопасности, которые нельзя упускать из виду.
Сокол Момот
0

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

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

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

MarkHu
источник