Souvent, je modifie un fichier avec nano, essaie de sauvegarder et d’obtenir une erreur d’autorisation car j’ai oublié de l’exécuter en tant que sudo. Existe-t-il un moyen rapide de devenir sudo sans devoir rouvrir et rééditer le fichier?
command-line
sudo
nano
Kit Sunde
la source
la source
vim
. J'envisage la fusion ... même si je considère également le fait que les instructions spécifiques à vim ne fonctionneront pasnano
.nano
n'est pasvim
... et aucunenano
solution semblable àvim
ne s'est présentée.Réponses:
Non, vous ne pouvez pas donner à un programme en cours d'exécution les autorisations dont il ne dispose pas au démarrage. Ce serait le trou de sécurité appelé «élévation de privilèges» 1.
Deux choses que vous pouvez faire:
sudo cp $TMPFILE $FILE
. Notez qu'il n'est pas recommandé de l'utilisermv
pour cela en raison du changement de propriétaire du fichier et des autorisations qu'il est susceptible d'entraîner. Vous souhaitez simplement remplacer le contenu du fichier et non le paramètre réservé au fichier lui-même.fg
pour revenir à l'éditeur et le sauvegarder. N'oubliez pas de corriger les autorisations!¹ Certains éditeurs sont en mesure de le faire en lançant un nouveau processus avec des autorisations différentes et en transmettant les données à ce processus pour qu'il les enregistre. Voir par exemple cette question connexe pour d'autres solutions d'éditeurs avancés permettant l'écriture du tampon de fichier dans un canal de processus. Nano n'a pas la capacité de lancer un nouveau processus ou de transmettre des données à d'autres processus, il est donc exclu.
la source
:w !sudo tee
Je viens d'essayer
nano
, et ce qui m'a le plus surpris, c'est qu'il ne vous avertit même pas que le fichier est en lecture seule lorsque vous commencez à essayer de le modifier. ( UPDATE: Apparemment, nano 2.2 avertit; 2.0 non. )Voici un script (de base) qui fait ça.
Il vérifie si vous pouvez éditer le fichier et si vous ne le pouvez pas, il lance "nano" en tant que root.
/ usr / local / bin / edit (ou ~ / bin / edit )
Et une commande que j'ai appelée
view
afin que vous puissiez éviter l'invite si vous savez que vous ne ferez aucune modification./ usr / local / bin / view (ou ~ / bin / view )
Il existe déjà un programme appelé
view
Vi / Vim, alors n'hésitez pas à suggérer un meilleur nom.(Mais je pense qu'une mise en œuvre complète de ce programme rendrait Vi
view
inutile.)Versions complètes
la source
[ Read ... lines (Warning: No write permission) ]
est ce qui apparaît juste au-dessus des deux lignes d’aide pour les raccourcis (bas de l’écran). La version Nano est 2.2.4.