707 Stimmen

sudo echo "etwas" >> /etc/privilegedFile funktioniert nicht

Dies ist eine ziemlich einfache Frage, zumindest scheint es so zu sein, über sudo-Berechtigungen in Linux.

Es gibt viele Gelegenheiten, bei denen ich einfach nur etwas anhängen möchte /etc/hosts oder eine ähnliche Datei zu erstellen, was aber nicht möglich ist, weil beide > y >> sind nicht erlaubt, auch nicht mit Root.

Gibt es eine Möglichkeit, dies zu erreichen, ohne dass man su o sudo su in Root?

1078voto

Yoo Punkte 16264

Utilice tee --append o tee -a .

echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list

Achten Sie darauf, Anführungszeichen innerhalb von Anführungszeichen zu vermeiden.

Um zu vermeiden, dass Daten auf die Konsole zurückgegeben werden, leiten Sie die Ausgabe nach /dev/null um.

echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list > /dev/null

Erinnern Sie sich an die ( -a / --append ) Flagge! Einfach tee funktioniert wie > und wird Ihre Datei überschreiben. tee -a funktioniert wie >> und wird am Ende der Datei geschrieben.

356voto

Matt P Punkte 5207

Das Problem ist, dass die Shell die Ausgabe umleitet, nicht sudo oder echo, so dass dies als Ihr normaler Benutzer geschieht.

Probieren Sie den folgenden Codeschnipsel aus:

sudo sh -c "echo 'something' >> /etc/privilegedfile"

37voto

Incident Punkte 489

Das Problem ist, dass Ihre Shell die Umleitung durchführt; sie versucht, die Datei mit su Berechtigungen, nicht die des Prozesses, den Sie unter sudo ausführen.

Verwenden Sie vielleicht so etwas wie dieses:

sudo sh -c "echo 'something' >> /etc/privilegedFile"

22voto

Vinko Vrsalovic Punkte 252104
sudo sh -c "echo 127.0.0.1 localhost >> /etc/hosts"

16voto

agnul Punkte 11830

Doing

sudo sh -c "echo >> somefile"

sollte funktionieren. Das Problem ist, dass > und >> von Ihrer Shell gehandhabt werden, nicht vom "sudoed"-Befehl, so dass die Berechtigungen Ihre eigenen sind, nicht die des Benutzers, in den Sie "sudoing" machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X