Re: syntaxe de sudoers
Le vendredi 21 avril 2006 à 12:19, d'après
Daniel C <ml@editionsdidier.com> :
> Par exemple, pourquoi avec
> Defaults:tomcat5 env_delete-="LANG"
> dans sudoers (edité avec visudo), un
> sudo -u tomcat5 myenv.sh
> montre que j'ai toujour LANG dans mon environnement ?
Il y a deux explications :
- D'abord une erreur dans votre configuration, la liste env_delete
contient les noms des variables d'environnement à supprimer, donc il
faut _ajouter_ (+=) LANG à cette liste au lieu de l'enlever (-=) :
Defaults:tomcat5 env_delete+=LANG
- Les versions récentes de sudo dans Debian ont l'option "env_reset"
activée par défaut, et donc la liste env_delete n'est pas prise en
compte. De plus, LANG est une variable particulière, qui est laissée
dans l'environnement malgré le mode env_reset. Extrait du changelog de
la version 1.6.8p12-2 :
* env_reset is now set by default
* env_reset will preserve only HOME, LOGNAME, PATH, SHELL, TERM,
DISPLAY, XAUTHORITY, XAUTHORIZATION, LANG, LANGUAGE, LC_*, and USER
(in addition to the SUDO_* variables)
Au final, donc, si vous voulez absolument utiliser env_delete il faut
désactiver env_reset :
Defaults:tomcat5 !env_reset, env_delete+=LANG
Attention cependant à bien comprendre les implications "sécurité" de la
désactivation de env_reset... je vous engage également à lire le man
sudoers(5) pour plus de détails sur ces options de configuration.
--
Thomas Parmelan
Reply to: