При спробі змінити файл, не маючи на нього дозволу на запис, ви отримуєте помилку:
> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Sudoing не допомагає, оскільки він виконує команду як root, але оболонка обробляє перенаправлення stdout та відкриває файл як завгодно:
> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Чи є простий спосіб перенаправити stdout у файл, у який ви не маєте права писати, окрім відкриття оболонки як root та маніпулювання файлом таким чином?
> sudo su
# echo test > /tmp/foo
chown
міняв власника; це був лише приклад