GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hinzufügen einer Zeile zur Hosts-Datei, Berechtigung verweigert bei Verwendung von sudo - Mac

Das liegt daran, dass echo wird als root ausgeführt, aber die Shell ist diejenige, die die Umleitung tatsächlich durchführt. Sie müssen eine neue Shell erstellen, damit dies funktioniert:

sudo -- sh -c "echo test >> /etc/hosts"

Bearbeiten:Ich habe nicht gesehen, dass die > Umleitung funktioniert; Ich kann das nicht erklären.


Anstatt echo über eine Umleitung auszuführen, die als Ihr aktueller Benutzer ausgeführt wird, und nicht als root, da echo in Ihrem Beispiel ausgeführt wird, verwenden Sie tee, wie Steve Buzonas vorschlägt

 echo 'test' | sudo tee -a /etc/hosts

Das sudo wird nun auf den tee-Befehl angewendet. Das '-a' wird an die Datei angehängt

Dadurch wird auch tee auf die Standardausgabe ausgegeben. Wenn Sie 'test' nicht in Ihrem Terminal sehen möchten, fügen Sie auch hinzu:> /dev/null bis zum Ende dieser Zeile.


Linux
  1. Wie vermeide ich die Warnmeldung „Sind die gleiche Datei“ bei der Verwendung von cp unter Linux?

  2. Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

  3. Kopieren einer Datei nur, wenn sie neuer als das Ziel ist

  4. Warum wird mir beim Ausführen von ssh-add die Berechtigung verweigert?

  5. Entfernen und Hinzufügen von Berechtigungen mit numerischer Notation in derselben Zeile

Verwenden der SSH-Konfigurationsdatei

Sudo-Berechtigung verweigert, aber Su erteilt Berechtigung?

Wer ist der Dateieigentümer, wenn die Datei mit dem Sudo-Befehl erstellt wird?

Wie Echo in Datei

4 Tools zum Herunterladen einer beliebigen Datei über die Befehlszeile in Linux

Wie füge ich mit dem Linux-Mail-Befehl eine neue Zeile in die E-Mail ein?