Modifica file con diritti di superutente


53

Quando devi modificare i file di sistema, è una situazione normale che hai avviato Emacs con un normale utente prima, quindi il file sarà protetto da scrittura. Cosa posso fare per ottenere i privilegi di root? Intendo qualcosa di simile M-x sudoa Dired.

Non voglio lanciare Emacs come superutente e non voglio chiuderlo.

Risposte:


59

Utilizzare C-x C-fe digitare /su::/etc/hostnameo /sudo::/etc/hostnamecome applicabile.

Questo utilizza il pacchetto TRAMP , che è distribuito con Emacs. Questo pacchetto fornisce l'accesso ai file remoti e, più in generale, ai file che Emacs non può aprire direttamente.


1
Grazie. Qual è il significato di ::?
smonff,

7
Il: è un separatore; lo forniamo la seconda volta per indicare che non ci sono più argomenti. Puoi /su:otheruser@localhost:, per esempio.
artagnon,

5
/sudo::è una scorciatoia persudo:root@<hostname>:
phils il

9

Utilizzare find-filecon vagabondo. Al prompt /sudo::/etc/ssh/ssh_configuseranno sudo e una subshell per aprire quel file con i privilegi di root. Quando sudo viene utilizzato per la prima volta, verrà richiesta una password, ma fino alla chiusura di quella sessione è possibile modificare qualsiasi file con tali autorizzazioni aggiungendo il prefisso con il /sudo::comando esistente .

Vedi http://www.gnu.org/software/tramp/ per maggiori dettagli.


3

Se si utilizza il ivypacchetto e si è configurato counsel-find-fileper la sostituzione find-file, una delle "azioni edera" preconfigurate per l'utente è già quella di modificare il file come root. La sequenza di hydratasti predefinita per quell'azione è r.


2

Oggi ci sono molti pacchetti che risolvono questo problema (a partire dal 2018). Alcuni di loro sono:

  • sudo-edit, consente di cambiare i diritti di modifica su un file di sola lettura già aperto. Basta M-x sudodigitare una password e il gioco è fatto. Dopo molti anni di utilizzo di questo, penso che sia il più conveniente per questa esigenza. sudo-editconsente di aprire un file come qualsiasi utente, ma è predefinito su sudo se non fornito.
  • dired-toggle-sudo. È stata la prima soluzione confezionata che ho trovato dopo aver posto questa domanda. È orientato a Dired, quindi se si preferisce la versione orientata ai file , vedere il primo punto elenco di questo elenco.
  • Esistono altre soluzioni su Melpa

2

Se usi Helm. Non è necessario alcun pacchetto esterno / configurazione aggiuntiva. funziona fuori dagli schemi.

Al helm-find-filessuo interno è possibile invocare find file as rootquale C-c r. Funziona con file o directory in helm-find-filessessione.

Se non si desidera digitare la password ogni volta che si aprono file / directory root. Metti la seguente riga nella tua~/.authinfo.gpg

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

fonte

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.