Возьмем следующий фрагмент:
fakeroot -- sudo cat /etc/shadow
Это выведет содержимое /etc/shadow
, но разве запуск sudo в fakeroot не разрушит весь его смысл, или я что-то упускаю?
решение1
FakeRoot Создает поддельную среду root, обычно для того, чтобы устранить необходимость получения прав root для сборки пакета.
Fakeroot запускает команду в среде, где у него, по-видимому, есть привилегии root для манипулирования файлами.
Поэтому sudo
становится нулевой операцией, поскольку она полагает, что у вызывающего уже есть права root. Поэтому пароль не потребуется.
The Руководство Sudoers есть исключение из правила:
Если sudo запущено пользователем root и установлена переменная окружения SUDO_USER, политика sudoers будет использовать это значение для определения того, кто является фактическим пользователем. Это может использоваться пользователем для регистрации команд через sudo, даже если была вызвана оболочка root.
Если sudo
вызывается с параметрами, они будут иметь обычный эффект.