Bearbeiten Sie die Datei mit Superuser-Rechten

54

Wenn Sie Systemdateien bearbeiten müssen, ist es eine übliche Situation, dass Sie Emacs zuvor mit einem normalen Benutzer gestartet haben, sodass die Datei schreibgeschützt ist. Was kann ich tun, um Root-Rechte zu erlangen? Ich meine so etwas wie M-x sudoaus dired.

Ich möchte Emacs nicht als Superuser starten und ich möchte es nicht beenden.

smonff
quelle

Antworten:

59

Verwenden Sie C-x C-fund tippen Sie aus /su::/etc/hostnameoder /sudo::/etc/hostnamewie anwendbar.

Hierfür wird das mit Emacs gelieferte TRAMP- Paket verwendet . Dieses Paket bietet Zugriff auf Remote-Dateien und allgemein auf Dateien, die Emacs nicht direkt öffnen kann.

Artagnon
quelle
1
Vielen Dank. Was ist die Bedeutung von ::?
Smonff
7
Das: ist ein Trennzeichen; Wir liefern es zum zweiten Mal, um darauf hinzuweisen, dass es keine weiteren Argumente gibt. Sie können /su:otheruser@localhost:zum Beispiel.
Artagnon
5
/sudo::is tramp sudo:root@<hostname>:
shorthand
9

Verwenden Sie find-filemit Tramp. Bei der Eingabeaufforderung /sudo::/etc/ssh/ssh_configverwenden Sie sudo und eine Subshell, um diese Datei mit Root-Rechten zu öffnen. Wenn sudo zum ersten Mal verwendet wird, werden Sie zur Eingabe eines Kennworts aufgefordert. Bis zum Abschluss dieser Sitzung können Sie jedoch alle Dateien mit diesen Berechtigungen bearbeiten, indem Sie den vorhandenen /sudo::Befehl voranstellen .

Weitere Informationen finden Sie unter http://www.gnu.org/software/tramp/ .

dgtized
quelle
3

Wenn Sie das ivyPaket verwenden und das counsel-find-fileErsetzen konfiguriert haben find-file, besteht eine der für Sie bereits vorkonfigurierten "Efeu-Aktionen" darin, die Datei als root zu bearbeiten. Der Standardtastenanschlag hydrafür diese Aktion ist r.

user1404316
quelle
2

Es gibt heute viele Pakete, die dieses Problem lösen (Stand 2018). Einige von ihnen sind:

  • sudo-edit, ermöglicht das Ändern der Bearbeitungsrechte für eine bereits geöffnete schreibgeschützte Datei. Einfach M-x sudoein Passwort eingeben und fertig. Nach vielen Jahren des Gebrauchs ist es meiner Meinung nach für dieses Bedürfnis am bequemsten. sudo-editErmöglicht das Öffnen einer Datei als ein beliebiger Benutzer, aber standardmäßig auf sudo, falls keiner angegeben ist.
  • dired-toggle-sudo. Es war das erste Lösungspaket, das ich gefunden habe, nachdem ich diese Frage gestellt hatte. Es ist direkt ausgerichtet. Wenn Sie also die dateiorientierte Version bevorzugen, lesen Sie den ersten Aufzählungspunkt dieser Liste.
  • Weitere Lösungen gibt es auf Melpa
smonff
quelle
2

Wenn Sie Helm benutzen. Sie benötigen kein externes Paket / zusätzliche Konfiguration. es funktioniert sofort.

Im Inneren können helm-find-filesSie find file as rootdie gebundenen aufrufen C-c r. Dies funktioniert für Dateien oder Verzeichnisse in einer helm-find-filesSitzung.

Wenn Sie das Kennwort nicht jedes Mal eingeben möchten, wenn Sie Root-Dateien / -Verzeichnisse öffnen. Setzen Sie die folgende Zeile in Ihre~/.authinfo.gpg

machine localhost port sudo login root password xxxxxx
machine your_machine_name port sudo login root password xxxxx

Quelle

azzamsa
quelle