Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 yikes


CentOS => tout type de serveur
Ubuntu => tout bon ordinateur
Lubuntu => sur du vieux matos ;-)
Wiki perso : http://pix.noip.me

Hors ligne