Назад | Перейти на главную страницу

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

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

Например,

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

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

Почему это?

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

sudo > mail.log

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

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

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

sudo "some_command with operands > mail.log"