Wenn Sie versuchen, eine Datei zu ändern, ohne über Schreibberechtigungen zu verfügen, erhalten Sie eine Fehlermeldung:
> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Sudoing hilft nicht, weil es den Befehl als root ausführt, aber die Shell handhabt die Umleitung von stdout und öffnet die Datei trotzdem wie Sie:
> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Gibt es eine einfache Möglichkeit, stdout in eine Datei umzuleiten, in die Sie keine Schreibberechtigung haben, außer eine Shell als root zu öffnen und die Datei auf diese Weise zu manipulieren?
> sudo su
# echo test > /tmp/foo
Akzeptierte Antwort:
Ja, mit tee
. Also echo test > /tmp/foo
wird
echo test | sudo tee /tmp/foo
Sie können auch (>>
)
echo test | sudo tee -a /tmp/foo