Je cherche =E0 lancer une commande avec sudo, en initialisant certaines v=
ariables=20
d'environnement.
C'est pour un script d'init pour lancer tomcat sous son propre user.
J'y arrive sans pb avec su (mais c'est mal ;-) ) ou avec sudo qui appelle=
un=20
script interm=E9diaire qui exporte mes variables d'environnement.
=E7a donne dans l'init
/usr/bin/sudo -u $TOMCAT_USER $TOMCAT_HOME/start_under_tomcat_user.sh
avec dans start_under_tomcat_user.sh
#!/bin/sh
JAVA_HOME=3D/opt/java
CATALINA_OPTS=3D"-Dfile.encoding=3Diso8859-1"
export JAVA_HOME CATALINA_OPTS
/opt/tomcat5/bin/startup.sh
Ca marche correctement, mais j'aimerais me passer de ce script, en mettan=
t les=20
bons params dans /etc/sudoers (avoir ces 2 vars et virer tout le reste), =
mais je=20
n'y arrive pas.
J'ai lu (entre autres) http://aplawrence.com/Basics/sudo.html et
http://www.courtesan.com/sudo/man/sudoers.html mais j'ai pas r=E9ussi =E0=
mettre les=20
bons params dans /etc/sudoers pour pouvoir appeler /opt/tomcat5/bin/start=
up.sh=20
directement dans l'init.
Si qqun a =E7a sous la main... ou bien pourrait donner des tuyaux sur la =
syntaxe =E0=20
utiliser... merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel C
Daniel C a écrit :
Bonjour,
Je cherche à lancer une commande avec sudo, en initialisant certaines variables d'environnement.
Je me répond, partiellement...
ajouter -i à la commande permet de récupérer toutes les variables d u ~/.bash_profile Ca me laisse trop de variables à la fin, mais ça marche.
C'est pour un script d'init pour lancer tomcat sous son propre user.
Pour ça, start-stop-daemon me parait beaucoup mieux que su ou sudo !
Daniel
PS: Ca résoud pas mon pb de syntaxe de sudoers que je maîtrise pas po ur ces variables d'environnement, mais ça répond au pb initial.
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 ?
Daniel C a écrit :
Bonjour,
Je cherche à lancer une commande avec sudo, en initialisant certaines
variables d'environnement.
Je me répond, partiellement...
ajouter -i à la commande permet de récupérer toutes les variables d u ~/.bash_profile
Ca me laisse trop de variables à la fin, mais ça marche.
C'est pour un script d'init pour lancer tomcat sous son propre user.
Pour ça, start-stop-daemon me parait beaucoup mieux que su ou sudo !
Daniel
PS: Ca résoud pas mon pb de syntaxe de sudoers que je maîtrise pas po ur ces
variables d'environnement, mais ça répond au pb initial.
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 ?
Je cherche à lancer une commande avec sudo, en initialisant certaines variables d'environnement.
Je me répond, partiellement...
ajouter -i à la commande permet de récupérer toutes les variables d u ~/.bash_profile Ca me laisse trop de variables à la fin, mais ça marche.
C'est pour un script d'init pour lancer tomcat sous son propre user.
Pour ça, start-stop-daemon me parait beaucoup mieux que su ou sudo !
Daniel
PS: Ca résoud pas mon pb de syntaxe de sudoers que je maîtrise pas po ur ces variables d'environnement, mais ça répond au pb initial.
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 ?
Thomas Parmelan
Le vendredi 21 avril 2006 à 12:19, d'après Daniel C :
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
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
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
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le vendredi 21 avril 2006 à 12:19, d'après Daniel C :
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
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact