Почему для выполнения некоторых команд требуется su, а не просто sudo?

Почему для выполнения некоторых команд требуется su, а не просто sudo?

Я думал, что запуск команды с помощью sudoидентичен входу в систему как пользователь root и выполнению команды. Однако я нашел несколько команд, которые не работают с, sudoно работают для su.

Например,

sudo > mail.log
bash: mail.log: Permission denied

но на самом деле ввод suи выполнение той же команды работает.

Почему это?

решение1

Посмотрите, что вы делаете с этой командой.

sudo > mail.log

>в командной строке перед перенаправлением stdout попробуйте обрезать mail.logфайл. Эта операция выполняется обычным пользователем (до того, как sudoзапустится ваш без аргументов). Вероятно, у обычного пользователя нет прав на запись в mail.logфайл.

Все работает как надо.

Если вам необходимо выполнить команду sudo и записать ее в файл определенного типа, используйте следующую команду:

sudo "some_command with operands > mail.log"

Связанный контент