Oft bearbeite ich eine Datei mit nano, versuche zu speichern und erhalte einen Berechtigungsfehler, weil ich vergessen habe, sie als sudo auszuführen. Gibt es eine schnelle Möglichkeit, wie ich sudo werden kann, ohne die Datei erneut öffnen und bearbeiten zu müssen?
command-line
sudo
nano
Kit Sunde
quelle
quelle
vim
. Ich denke über die Zusammenführung nach ... obwohl ich auch überlege, dass vim-spezifische Anweisungen nicht funktionierennano
.nano
ist nichtvim
... und es haben sich keinenano
lösungen gezeigt, die denen von ähnlichvim
sind.Antworten:
Nein, Sie können einem laufenden Programm keine Berechtigungen erteilen, die es beim Start nicht hat. Dies wäre die Sicherheitslücke, die als "Rechteerweiterung" bezeichnet wird.
Zwei Dinge, die Sie tun können:
sudo cp $TMPFILE $FILE
. Beachten Sie, dassmv
dies aufgrund der Änderung des Dateieigentums und der damit verbundenen Berechtigungen nicht empfohlen wird. Sie möchten lediglich den Dateiinhalt und nicht den Dateiplatzhalter selbst ersetzen.fg
, um zum Editor zurückzukehren und zu speichern. Vergessen Sie nicht, die Berechtigungen zu korrigieren!¹ Einige Editoren können dies tatsächlich tun, indem sie einen neuen Prozess mit unterschiedlichen Berechtigungen starten und die Daten zum Speichern an diesen Prozess weitergeben. Diese verwandte Frage enthält beispielsweise Informationen zu anderen Lösungen in erweiterten Editoren, mit denen der Dateipuffer in eine Prozesspipe geschrieben werden kann. Nano ist nicht in der Lage, einen neuen Prozess zu starten oder Daten an andere Prozesse weiterzugeben. Daher wird dieser Prozess von dieser Partei ausgeschlossen.
quelle
:w !sudo tee
Ich habe es gerade versucht
nano
, und was mich am meisten überrascht hat, ist, dass Sie nicht einmal gewarnt werden, dass die Datei schreibgeschützt ist, wenn Sie versuchen, die Datei zu bearbeiten. ( UPDATE: Anscheinend warnt Nano 2.2; 2.0 nicht. )Hier ist ein (grundlegendes) Skript, das das macht.
Es überprüft, ob Sie die Datei bearbeiten können, und wenn Sie dies nicht können, wird stattdessen "nano" als root ausgeführt.
/ usr / local / bin / edit (oder ~ / bin / edit )
Und einen Befehl, den ich aufgerufen
view
habe, damit Sie die Eingabeaufforderung umgehen können, wenn Sie wissen, dass Sie keine Änderungen vornehmen werden./ usr / local / bin / view (oder ~ / bin / view )
Es gibt bereits ein Programm namens
view
"Vi / Vim". Sie können also einen besseren Namen vorschlagen.(Aber ich denke, eine vollständige Implementierung dieses Programms würde Vi
view
überflüssig machen.)Vollversionen
quelle
[ Read ... lines (Warning: No write permission) ]
wird direkt über den beiden Hilfezeilen für die Verknüpfungen (unten auf dem Bildschirm) angezeigt. Nano-Version ist 2.2.4.