Во многих разновидностях Linux и Unix пользователь root не может использовать sudo
. Почему это? Есть ли какие-либо проблемы безопасности с root ALL=(ALL) ALL
присутствующим в конфигурации sudoers по умолчанию некоторых других разновидностей?
1 ответ
Существует две «стандартные» версии /etc/sudoers
используемые дистрибутивами Linux. Каждый следует принципу наименьших привилегий и по умолчанию не включает упомянутую вами строку. Другой предпочитает удобство использования и простоту обслуживания, и включает в себя линию, которую вы перечислили выше.
С практической точки зрения, вне очень сильно ограниченных сред, включающих такие вещи, как SELinux, нет никакой разницы в безопасности между двумя версиями, потому что root уже имеет все инструменты, необходимые для олицетворения других пользователей (либо с помощью su
, либо с использованием любого другого программного обеспечения, способного вызова setuid()
).
Однако административное преимущество заключается в возможности использовать sudo -u
качестве пользователя root для олицетворения других пользователей. Поскольку sudo
должным образом очищает среду и затем следует стандартным процедурам входа в оболочку, использование sudo -u
для олицетворения пользователя позволяет более точно воспроизводить проблемы, о которых сообщал этот пользователь, чем вы могли бы с помощью только su
, что, в свою очередь, делает службу поддержки Типа работать намного проще.