Lösung für das Problem unzureichender Berechtigungen bei der Verwendung von „sudo echo >>“ unter Linux

Bei Verwendung von „sudo echo >>“ unter Linux wird angezeigt, dass die Berechtigungen nicht ausreichen.
sudo echo "export PATH" >> /etc/profile
bash: /etc/profile: Permission denied

Bash lehnt es ab, unzureichende Berechtigungen zu nennen. Dies liegt daran, dass die Umleitungssymbole „>“ und „>>“ ebenfalls Bash-Befehle sind. sudo lässt nur zu, dass der Echo-Befehl über Root-Berechtigungen verfügt, erlaubt jedoch nicht, dass die Befehle „>“ und „>>“ ebenfalls über Root-Berechtigungen verfügen. Daher geht Bash davon aus, dass diese beiden Befehle keine Berechtigung zum Schreiben von Informationen haben.

Lösung eins:

Verwenden Sie den Befehl „sh -c“, der es der Bash ermöglicht, eine Zeichenfolge als vollständigen Befehl auszuführen und so den Einflussbereich von sudo auf den gesamten Befehl auszudehnen. Die spezifische Verwendung ist wie folgt:

sudo sh -c ‘echo "PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin/" >> /etc/profile’
sudo sh -c ‘echo "export PATH" >> /etc/profile’
Lösung zwei:

Mithilfe von Pipes und dem Befehl tee kann dieser Befehl Informationen aus der Standardeingabe lesen und in die Standardausgabe oder -datei schreiben. Die spezifische Verwendung ist wie folgt:

echo “PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin/” | sudo tee -a /etc/profile
echo “export PATH” | sudo tee -a /etc/profile

Hinweis:
Die Option „-a“ des Tee-Befehls hat die gleiche Wirkung wie der Befehl „>>“. Wenn diese Option entfernt wird, hat der Tee-Befehl dieselbe Wirkung Wirkung wie die Reihenfolge „> ;“.

Ich denke du magst

Origin blog.csdn.net/change_can/article/details/115128218
Empfohlen
Rangfolge