Datei „/etc/network/interfaces“ kann in Ubuntu nicht über Bash-Skript bearbeitet werden

Datei „/etc/network/interfaces“ kann in Ubuntu nicht über Bash-Skript bearbeitet werden

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/interfacesbeginntnano /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/interfacesbeginntetwas 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.

verwandte Informationen