Dies ist das erste Mal, dass su für mich erforderlich war.
Ich habe einen Artikel über das Ändern des Werts in / sys / Geräte / virtuell / Hintergrundbeleuchtung / acpi_video0 / Helligkeit gelesen, um die Bildschirmhelligkeit meines Laptops zu ändern.
Ich bemerkte zuerst, dass $ sudo echo 10 > brightness
mir die Erlaubnis verweigert würde , wenn ich würde .
Ich wechselte mit su zu root und # echo 10 > brightness
änderte meine Helligkeit fast augenblicklich.
Das letzte seltsame Ding ist mir passiert, als ich es versucht habe # echo 20 > brightness
(maxbrightness-Datei enthält den Wert 15) und ich habe einen Schreibfehler erhalten
Könnte mir jemand diesen Unterschied zwischen sudo und su erklären? Das Verständnis des Schreibfehlers wäre ein zusätzlicher Bonus. Jede Hilfe, Hinweise und / oder Links wäre sehr dankbar.
quelle
Antworten:
Die Umleitung funktioniert nicht so. Durch Anhängen
>
an einen Befehl wird diese Umleitung als aufrufender Benutzer (Sie) und nicht als Root ausgeführt. Mach es mittee
:oder indem Sie den Befehl in einer separaten privilegierten Shell aufrufen:
quelle
Dies liegt nicht
sudo
an der Art und Weise, wie Ihr Befehl verarbeitet wird. Ich habe es tatsächlich in dieser Frage erklärt . Wenn Sie das tunDie Shell führt den Befehl aus
sudo echo 10
, derecho 10
als root ausgeführt wird. Die Shell versucht dann zu öffnen,brightness
damit sie die Ausgabe von dort umleiten kannecho 10
, kann dies jedoch nicht - Ihre Shell wird mit Ihren Berechtigungen ausgeführt, nicht mit root. Es gibt Problemumgehungen als Antworten auf die Frage, mit der ich verlinkt habe. ein guter ist:Jetzt muss
tee
es geöffnet werdenbrightness
, und da es als Root ausgeführt wird, ist es erfolgreichquelle
su = s witch u ser: Verwenden Sie die Shell als anderen Benutzer
sudo = s uper u ser do : Führen Sie den folgenden Befehl als Root-Benutzer aus.
In Ihrem Fall ist nur der folgende Befehl
echo 20
, daher wird nur Echo 20 als Root ausgeführt (wie zuvor gesagt). Die Weiterleitung wird wie Sie erneut ausgeführt.quelle
Vielleicht möchten Sie einen Blick auf die
/etc/sudoers
Datei werfen . Wenn Ihre Klimaanlage dort nicht aufgeführt ist, können Sie dies nichtsudo
.quelle