Warum erfordern einige Befehle zur Ausführung su und nicht nur sudo?

Warum erfordern einige Befehle zur Ausführung su und nicht nur sudo?

Ich dachte, dass das Ausführen eines Befehls mit sudoidentisch ist mit der Anmeldung als Root-Benutzer und dem Ausführen des Befehls. Ich habe jedoch einige Befehle gefunden, die mit nicht funktionieren, sudofür jedoch schon su.

Zum Beispiel,

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

aber tatsächlich sufunktioniert 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.logdie Datei zu kürzen, bevor Sie stdout umleiten. Dieser Vorgang wird von einem normalen Benutzer ausgeführt (bevor Sie sudoohne Argumente beginnen). Wahrscheinlich hat ein normaler Benutzer keinen Schreibzugriff auf mail.logdie 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"

verwandte Informationen