
Mögliches Duplikat:
Sudo-Berechtigung verweigert
Ich muss /etc/network/interfaces über ein Bash-Skript bearbeiten. Ich mache so etwas wie unten …
sudo echo something > /etc/network/interfaces
Beim Ausführen dieser Zeilen erhalte ich den unten aufgeführten Fehler:
bash: /etc/network/interfaces: Permission denied
Aber wenn ich die gleiche Datei mit einem Editor bearbeite, funktioniert es einwandfrei, d. h.
sudo nano /etc/network/interfaces
Lassen Sie mich oben diese Datei bearbeiten.
Antwort1
Diese Frage wurde irgendwo auf dieser Site bereits beantwortet, ich konnte sie jedoch nicht finden.
Aber im Grunde läuft es auf Folgendes hinaus:
sudo nano /etc/network/interfaces
beginntnano /etc/Netzwerk/Schnittstellenals UID 0. Da Nano unter UID 0 ausgeführt wird und die Berechtigung zum Schreiben in /etc/network/interfaces hat.
sudo echo something > /etc/network/interfaces
beginntetwas wiedergebenals UID 0. Dieser Teil ist erfolgreich. Die Ausgabe wird mit >
/etc/network/interfaces umgeleitet. Allerdings erfolgt diese Umleitung mit Ihrem eigenen Konto. Und dieses hat keine Berechtigung, an diesen Ort zu schreiben.
Versuchen Sie stattdessen Folgendes:
sudo bash -c "echo something > /etc/network/interfaces"
Dadurch sollte Bash als UID 0 ausgeführt werden und Bash den gesamten Befehl als UID 0 ausführen.
Oder einfach su -
als Root. Es wird nicht empfohlen, ständig als Root zu arbeiten, aber es gibt Situationen, in denen Sie einfach über ausreichende Rechte verfügen möchten, ohne vor jeder Zeile einen Sudo-Befehl einzugeben. Verwenden Sie Root einfach nicht als Hauptbenutzer. Sie können Root problemlos zum Installieren und Konfigurieren eines Systems verwenden.