Ich dachte, dass das Ausführen eines Befehls mit sudo
identisch ist mit der Anmeldung als Root-Benutzer und dem Ausführen des Befehls. Ich habe jedoch einige Befehle gefunden, die mit nicht funktionieren, sudo
für jedoch schon su
.
Zum Beispiel,
sudo > mail.log
bash: mail.log: Permission denied
aber tatsächlich su
funktioniert das Eingeben und Ausführen desselben Befehls.
Warum ist das?
Antwort1
Sehen Sie sich an, was Sie mit diesem Befehl tun.
sudo > mail.log
>
Versuchen Sie in der Befehlszeile, mail.log
die Datei zu kürzen, bevor Sie stdout umleiten. Dieser Vorgang wird von einem normalen Benutzer ausgeführt (bevor Sie sudo
ohne Argumente beginnen). Wahrscheinlich hat ein normaler Benutzer keinen Schreibzugriff auf mail.log
die Datei.
Alles funktioniert wie es soll.
Wenn Sie sudo benötigen, um den Befehl auszuführen und in einen Dateityp zu schreiben, verwenden Sie den folgenden Befehl:
sudo "some_command with operands > mail.log"