Pages : 1
#1 Le 14/09/2009, à 10:22
- loopx
[sudo] pète les plombs ...
Bonjour,
Désolé, je poste ici, mais c'est pas vraiment pour Kubuntu, c'est du Red Hat, mais je pense que ca doit quand même être plus ou moins pareil ...
J'explique le problème ... J'ai un serveur et un utilisateur nomé "jbossconsole" ; cet utilisateur doit être capable d'exécuter, en tant que root, 4 script RC :
- /etc/init.d/jboss-val0109
- /etc/init.d/jboss-val0110
- /etc/init.d/jboss-val0111
- /etc/init.d/jboss-val0112
J'ai donc ajouté ceci dans sudo (via visudo) => /etc/sudoers :
# Allow low user "jbossconsole" to access some root command
Cmnd_Alias JBOSSCONSOLE_CMD = /etc/init.d/jboss-*, /usr/local/bin/jbossconsole_deployment, /usr/local/bin/jbossconsole_undeployment
jbossconsole ALL=(root) NOPASSWD: JBOSSCONSOLE_CMD
Pour info, voici un petit "ls" du répertoire "/etc/init.d/" pour vous convaincre de ma bonne fois ^^ :
[0][root@serveur ~]$ ls -l /etc/init.d/jboss-*
-rwxr-xr-x 1 root root 10621 Sep 11 15:30 /etc/init.d/jboss-init
lrwxrwxrwx 1 root root 10 Sep 11 13:50 /etc/init.d/jboss-val0109 -> jboss-init
lrwxrwxrwx 1 root root 10 Sep 11 13:50 /etc/init.d/jboss-val0110 -> jboss-init
lrwxrwxrwx 1 root root 10 Sep 11 13:50 /etc/init.d/jboss-val0111 -> jboss-init
lrwxrwxrwx 1 root root 10 Sep 11 15:23 /etc/init.d/jboss-val0112 -> jboss-init
Petit test via en local (connection root => "su - jbossconsole" => jbossconsole) :
[0][jbossconsole@serveur ~]$ sudo /etc/init.d/jboss-val0109 status
val0109 (pid 2490) is running
[0][jbossconsole@serveur ~]$ sudo /etc/init.d/jboss-val0110 status
val0110 (pid 3047) is running
[0][jbossconsole@serveur ~]$ sudo /etc/init.d/jboss-val0111 status
val0111 (pid 3425) is running
[0][jbossconsole@serveur ~]$ sudo /etc/init.d/jboss-val0112 status
Password:
Le problème se situe au niveau de ce dernier script RC : sudo demande un mot de passe ... mais pourquoi ?????? On est plusieurs à avoir analysé le problème et personne n'y comprend rien ...
J'ai pourtant trouvé un workaround ... mais c'est totalement illogique, alors qu'un ordinateur est logique :
[1][root@serveur ~]$ touch /etc/init.d/jboss-12
[1][jbossconsole@serveur ~]$ sudo /etc/init.d/jboss-val0112 status
val0112 (pid 3858) is running
Le workaround, ... il faut créer un fichier bidon "jboss-12" dans /etc/init.d/ ... et la magie, sudo ne demande plus de mot de passe ... vraiment étrange non !!???!!???!!??
Alors, si quelqu'un sait d'ou vient ce problème ? Est-ce un changement de syntaxe ? Est-ce un bug ? Quel est le rapport entre sudo et le répertoire "/etc/init.d/" ???? car, vraiment, créer un fichier et savoir exécuter "/etc/init.d/jboss-val0112" juste après, je vois pas vraiment le rapport ...
Any ideas ?
CentOS => tout type de serveur
Ubuntu => tout bon ordinateur
Lubuntu => sur du vieux matos ;-)
Wiki perso : http://pix.noip.me
Hors ligne
#2 Le 14/09/2009, à 11:12
- loopx
Re : [sudo] pète les plombs ...
Bon, j'ai un meilleur workaround .. car il faut savoir que il peut y avoir du "val", du "dev", du "test" et du "prod" ... J'ai ajouté ceci après l'"*" :
[0-9][0-9][0-9][0-9]
ce qui donne, dans sudoers :
# Allow low user "jbossconsole" to access some root command
Cmnd_Alias JBOSSCONSOLE_CMD = /etc/init.d/jboss-*[0-9][0-9][0-9][0-9], /usr/local/bin/jbossconsole_deployment, /usr/local/bin/jbossconsole_undeployment
jbossconsole ALL=(root) NOPASSWD: JBOSSCONSOLE_CMD
mais bon .. j'aimerais quand même savoir pourquoi je dois rajouter des trucs après une "*"!! Ce n'est pas logique du tout
CentOS => tout type de serveur
Ubuntu => tout bon ordinateur
Lubuntu => sur du vieux matos ;-)
Wiki perso : http://pix.noip.me
Hors ligne
Pages : 1