Supposons que je veuille ouvrir un fichier dans une session Emacs existante en utilisant su
ou sudo
, sans passer à un shell et faire sudoedit
ou sudo emacs
. Une façon de faire est
C-x C-f /sudo::/path/to/file
mais cela nécessite un aller-retour coûteux via SSH . Y a-t-il un moyen plus direct?
[EDIT] @JBB a raison. Je veux pouvoir invoquer su
/ sudo
enregistrer et ouvrir. Ce serait OK (mais pas idéal) de ré-autoriser lors de l'enregistrement. Ce que je recherche, ce sont des variantes de find-file
et save-buffer
qui peuvent être "canalisées" via su
/ sudo
.
emacs
file-permissions
sudo
Chris Conway
la source
la source
sudoedit
mention. Très utile.Réponses:
L'avantage de Tramp est que vous ne payez que pour cet aller-retour vers SSH lorsque vous ouvrez le premier fichier. Sudo met ensuite en cache vos informations d'identification et Emacs enregistre une poignée, de sorte que les fichiers ouverts par sudo prennent beaucoup moins de temps.
Je n'ai pas non plus trouvé le temps supplémentaire nécessaire pour éviter le fardeau. C'est assez rapide, OMI.
la source
Tramp ne fait pas d' aller-retour sudo via SSH, il utilise un sous - shell . Voir le manuel: https://www.gnu.org/software/tramp/#Inline-methods
Par conséquent, je vous recommande de vous en tenir à TRAMP.
la source
Si vous utilisez
helm
,helm-find-files
prend en charge l'ouverture d'un fichier en tant que root avecC-c r
.la source
M-x helm-find-files C-c ?
qui indique comment revenir au mode normal d'ouverture en tant qu'utilisateur. RefaireC-c r
ne l'arrête pas.sudo -k
et puis il demande le mot de passe. J'ai redémarré Emacs et cela n'a pas éliminé le problème. J'ai fouillé et j'ai.emacs.d
trouvé des références à clochard, alors j'ai supprimé celles-ci. Maintenant ça semble mieux mais je ne sais pas si j'en suis libéré.Ce n'est pas vraiment une réponse à la question d'origine, mais voici une fonction d'aide pour rendre la route tramp / sudo un peu plus facile:
la source
esk-sudo-edit
.Au moins pour la sauvegarde, un package sudo-save a été écrit exactement pour ce genre de problème.
la source
Votre exemple ne démarre pas du tout ssh, du moins pas avec ma version de TRAMP ("2.1.13-pre"). Les deux find-file et save-buffer fonctionnent très bien.
la source
Je vous recommande d'utiliser des commandes de conseil. Mettez cette fonction dans votre ~ / .emacs
la source
ido-find-file
pour rechercher des fichiers.(fonctionne uniquement localement. A besoin d'être mis à jour pour fonctionner correctement via tramp)
Un peu plus longue réponse de Burton:
la source
Pouah. Vous pourriez peut-être ouvrir un shell dans Emacs et exécuter sudo emacs.
Le problème est que vous ne voulez probablement pas simplement ouvrir le fichier. Vous voulez pouvoir l'enregistrer plus tard. Ainsi, vous avez besoin que vos privilèges root persistent, pas seulement pour ouvrir le fichier.
On dirait que vous voulez qu'Emacs devienne votre gestionnaire de fenêtres. C'est assez gonflé sans ça. :)
la source