Existe-t-il un moyen de spécifier qui sudo
devrait conserver certaines variables d'environnement pour les commandes spécifiées uniquement? Pour certaines raisons, je voudrais mon $HOME
env. variable conservée lorsque j'exécute certaines commandes. À d'autres fins et d'autres commandes, je veux le réinitialiser. Cela peut-il être fait avec /etc/sudoers
?
Modifier:
Merci pour vos réponses. Je me demande si je pourrais poser une question de suivi, qui est "Pourquoi, alors, cela ne fonctionne-t-il pas?"
Dans l'exemple que j'essaie de travailler, je veux sudo nano
lire mon $HOME/.nanorc
. Si j'utilise ceci:
Defaults:simon env_keep=HOME
cela fonctionne parfaitement. Si j'utilise ceci:
Defaults!/bin/nano env_keep=HOME
ou ca:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
ça ne marche pas du tout. Des suggestions sur pourquoi? (Je suis sur les tests Debian, btw.)
(Remarque: je ne pense pas que ce soit nano
spécifique, btw - je peux reproduire le comportement avec un script bash d'une ligne qui echo
s $HOME
).
sudo
d' utiliser une fonction qui m'est propre, j'ai simplement ajouté un if [ "$1" == "$EDITOR" ]; then
bloc et j'appelle maintenant à la sudoedit
place :)
sudoedit
plutôt.sudoedit
exécutera copier le contenu d'un fichier dans un fichier tmp et exécutera l'éditeur de votre choix en tant qu'utilisateur, lorsque l'éditeur se fermera, il vérifiera si vous avez changé quelque chose et si c'est le cas, remplacez l'original par celui modifié. Vous pouvez sélectionner l'éditeur que vous souhaitez qu'il exécute en définissant les$EDITOR
vars env ou $ VISUAL`.