Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Droits user pour démarrage services

3 réponses
Avatar
Sil
Salut la liste,
J'ai un souci pour lancer un script sous Nagios (non non =E7a n'est pas HS,=
=20
Nagios fonctionne bien).
Je m'explique : Je souhaite en cas de p=E9pin sur un service, pouvoir le=20
red=E9marrer.
Je me doute qu'il faut les droits de root pour lancer une telle commande=20
(Ex: /etc/init.d/apache2 restart). J'ai donc modifi=E9 mes r=E8gles sudoers=
:

# Host alias specification
Host_Alias SERVEUR =3D localhost
# User alias specification
User_Alias NAGIOS =3D %nagios,moi_pour_faire_les_tests
# Cmnd alias specification
Cmnd_Alias SERVICES =20
=3D /usr/lib/nagios/plugins/eventhandlers/restart-apache,/etc/init.d/apache
# User privilege specification
root ALL=3D(ALL) ALL
NAGIOS SERVEUR =3D NOPASSWD: SERVICES

Quand je teste :
moi@serveur:~$ /etc/init.d/apache2 restart
=46orcing reload of web server: Apache2grep: /etc/apache2/ssl/apache.pem:=20
Permission non accord=E9e
grep: /etc/apache2/ssl/fa1f44e6.0: Permission non accord=E9e
grep: /etc/apache2/ssl/115406b0.0: Permission non accord=E9e
/etc/init.d/apache2: line 97: kill: (16929) - Op=E9ration non permise

moi@serveur:~$ sudo /etc/init.d/apache2 restart
=46orcing reload of web server: Apache2.

moi@serveur:~$ /usr/lib/nagios/plugins/eventhandlers/restart-apache CRITICA=
L=20
SOFT 3
Redemarrage d=E9mon Apache (3=E8me =E9tat critique SOFT)...Forcing reload o=
f web=20
server: Apache2grep: /etc/apache2/ssl/apache.pem: Permission non accord=E9e
grep: /etc/apache2/ssl/fa1f44e6.0: Permission non accord=E9e
grep: /etc/apache2/ssl/115406b0.0: Permission non accord=E9e
/etc/init.d/apache2: line 97: kill: (341) - Op=E9ration non permise

moi@serveur:~$ sudo /usr/lib/nagios/plugins/eventhandlers/restart-apache=20
CRITICAL SOFT 3
Redemarrage d=E9mon Apache (3=E8me =E9tat critique SOFT)...Forcing reload o=
f web=20
server: Apache2.

=E7a marche comme pr=E9vu, par contre si je teste sur Nagios rien ne marche.
La grosse diff=E9rence entre nagios et moi c'est le Shell :
moi /bin/bash
nagios /bin/false
Ce param=E8tre de Shell m'emp=EAche de me connecter pour tester les scripts.

Est-il possible de faire ex=E9cuter des scripts sudo =E0 un user /bin/false=
?

Merci d'avance.
@+
Sil

3 réponses

Avatar
Sil
Bonjour,

Je n'ai pas eu de succès avec mon premier message.
Mais j'ai continué mes investigations. ;-)

Voici le résultat de deux commandes identiques lancées de deux manièr es différentes,
la première en ligne de commande, logué sous nagios et la deuxième la ncé par le script nagios.

(visudo autorise nagios pour /etc/init.d/mysql *
et mon script restart-mysql lance "/usr/bin/sudo /etc/init.d/mysql restart")
(pour une lecture plus facile, j'ai enlevé le retour à la ligne automat ique)

$ /usr/lib/nagios/plugins/eventhadlers/restart-mysql CRTICAL SOFT 3
Donne dans /var/log/auth.log
Mar 26 15:05:34 localhost sudo: nagios : TTY=pts/1 ; PWD=/var/log/nag ios ; USER=root ; COMMAND=/etc/init.d/mysql restart
MySQL redémarre

Par contre si je stoppe mysql et nagios se débrouille tout seul au troisi ème test la
commande suivante est lancée et loguée dans auth.log :
Mar 26 15:04:40 localhost sudo: nagios : TTY=unknown ; PWD=/ ; USER =root ; COMMAND=/etc/init.d/mysql restart
MySQL ne redemarre pas :-(

Les différences sont qu'il n'y a pas de tty affecté (normal je suppose, vu que c'est un démon)
mais pourquoi PWD est sur la racine ? Nagios n'y a aucuns droits.
Voyez vous quelque chose de bizarre ?

Merci d'avance,
@+
Sil
Avatar
Sil
Je revient à la charge,

Voici mes derniers tests :
- le problème ne vient pas du paramètre requiretty de sudo.
- Une tache cron de l'utilisateur nagios fonctionne parfaitement, mysql
redemarre.
- une tâche exécutée par le démon nagios sous l'utilisateur nagio s ne
fonctionne pas et ne génère aucune erreur.

Les logs pour cron :
Mar 27 19:23:01 localhost CRON[3769]: (pam_unix) session opened for user
nagios by (uid=0)
Mar 27 19:23:01 localhost sudo: nagios : TTY=unknown ; PWD=/var/log/n agios ;
USER=root ; COMMAND=/etc/init.d/mysql restart
Mar 27 19:23:08 localhost CRON[3769]: (pam_unix) session closed for user
nagios

Les logs pour le démon nagios :
Mar 27 19:34:20 localhost sudo: nagios : TTY=unknown ; PWD=/var/log/n agios ;
USER=root ; COMMAND=/etc/init.d/mysql restart

Le fait que cron ouvre une session doit changer quelque chose, non ?

Merci d'avance pour votre aide,
@+
Sil
Avatar
Sil
Le problème semble résolu,
Sur la liste nagios user, on m'a conseillé de loguer la sortie de ma
commande de redémarrage du service :
/usr/bin/sudo /etc/init.d/mysql restart > /tmp/debug.log 2>&1

J'ai fait un test et le service à redémarré !
Je ne m'y attendait pas du tout.

J'ai donc modifié la ligne pour ne pas écrire de fichier :
/usr/bin/sudo /etc/init.d/mysql restart > /dev/null 2>&1

Et depuis ça marche.
Si quelqu'un y comprend quelque chose...

@+
Sil


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