Действительно ли sudo делает вас рутом?
Страница man для sudo
объясняет:
Нет простого способа помешать пользователю получить корневую оболочку, если ему разрешено запускать произвольные команды через sudo.
Таким образом, если вы запускаете sudo something
и вводите свой пароль; затем, если вы не заблокируете свой терминал, другой пользователь сможет запустить sudo su -
течение 5 минут, что даст ему доступ к корневой оболочке, если ваш sudo позволяет вам запускать произвольные команды. Чтобы узнать больше об этом тайм-ауте, я процитирую этот соответствующий раздел на странице руководства выше:
Политика sudoers кэширует учетные данные в течение 5 минут, если они не переопределены в sudoers
. sudo
с параметром -v
, пользователь может обновить кэшированные учетные данные, не выполняя команду.
Почему мне отказывают в разрешении?
sudo
не может вмешиваться в работу bash, поэтому он не может хорошо работать с такими функциями, как перенаправление файлов и другие функции, которые работают вне команды. Чтобы избежать этого, вам нужно будет попросить корневую оболочку выполнить полную команду, чтобы она пересылала символ перенаправления в корневую среду вместо ее анализа.
Как показал другой пользователь, это так же просто, как запуск
sudo bash -c 'date > file'
или переписать его так, чтобы вам не нужно было запускать параметр перенаправления от имени пользователя root, например так:
date | sudo tee file