Если бы у вас не было суперпользователя, вы должны были бы иметь возможность выполнять все задачи, которые сейчас требуют повышения привилегий, как обычный пользователь.
Это сделает еще более опасным оставлять свой рабочий стол без присмотра, потому что любой, кто доберется до клавиатуры до того, как заставка заблокирует систему, сможет, например, добавить новую учетную запись пользователя, отформатировать диск и т.д.
Удаление суперпользователя не устранит цель атаки для эксплойтов, оно просто создаст более легкую цель.
При указании команд, разрешенных через sudo
, в основном есть два простых варианта:
В результате, разрешение как sudo su - superman
, так и sudo su superman
требует двух записей в файле sudoers
. Похоже, ваш администратор предоставил вам только один из них.
Синтаксис файла sudoers
на самом деле не позволяет администратору указать конкретную команду с ограниченными параметрами подстановочного знака -или регулярного выражения -, потому что этими спецификациями было бы слишком легко злоупотреблять. Как сказал Эндрю, здесь лучше перестраховаться, чем сожалеть .
Однако обратите внимание, что sudo su superman
требует sudo
, чтобы исходный пользователь мог запускатьsu superman
как root . По сути, будет два перехода идентификатора вместо одного :: сначала от исходного пользователя к root посредством sudo
, а затем от root к superman
посредством su
. Спецификация будет выглядеть так в файле sudoers
:
original_user ALL=(root) su superman
С другой стороны, синтаксис sudoers
имеет гораздо более простой способ разрешить пользователю выполнять любые команды от имени конкретного пользователя, если пользователь не слишком зациклен на использовании команды su
.
Если спецификация sudoers написана так:
original_user ALL=(superman) ALL
, то пользователь может использовать sudo -u superman -s
для достижения близкого (, но, возможно, не точного )эквивалентаsudo su superman
иsudo -u superman -i
для достижения точного эквивалента sudo su - superman
.
Почему люди не используют это, а настаивают на использовании sudo su -
конструкций? Поскольку параметр -i
не существовал в более старых версиях sudo
!
Он появился только где-то после 2000 года, так что есть много старой литературы, которая до сих пор рекомендует -устаревшую sudo su -
конструкцию. И, конечно же, у старых пользователей и администраторов Unix это может быть в мышечной памяти, поэтому они будут использовать его, не задумываясь.