Rechercher : dans
Par :

/etc/init.d/nagios depuis une interface web

Dernière réponse le 26 aoû 2008 à 14:20:33 Slyers, le 25 aoû 2008 à 10:08:14 
 Signaler ce message aux modérateurs

Bonjour,

Je travaille actuellement à la mise en place d'un petit script exécutable depuis l'interface web.
A terme, l'utilisateur pourra cliquer sur une icone pour lancer le script (jusque là, je n'ai pas de problème).
Là où j'ai un problème, c'est que mon utilisateur n'a pas le droit de lancer un /etc/init.d/nagios reload.
J'ai essayé de mettre ceci dans visudo:
www-data ALL=NOPASSWD: /etc/init.d/nagios * (même avec reload à la place de *)
ou
apache ALL=NOPASSWD: /etc/init.d/nagios * (même avec reload à la place de *)

Ca ne fonctionne pas...
Donc, je ne sais plus trop quoi modifier...

En vous remerciant.

Configuration: Debian Etch
Mozilla 1.8.1.16

Meilleures réponses pour « /etc/init.d/nagios depuis une interface web » dans :
Routeur Mode Client Wifi (WRT54G) VoirIntroduction Par défaut, un routeur sert à partager une connexion Internet, arrivant vers un port WAN, vers des ordinateurs, via des ports réseau ou par wifi. Dans certains cas, il peut être intéressant d'utiliser le wifi comme arrivée...
Web Services VoirAvec l'interconnexion des ordinateurs en réseau et en particulier à travers internet, il devient possible de faire fonctionner des applications sur des machines distantes. L'intérêt d'une application fonctionnant à distance peut à première vue...
Réseaux - Client léger VoirClient léger Le terme « client léger » (parfois « client pauvre », en anglais « thin client »), par opposition au client lourd, désigne une application accessible via une interface web (en HTML) consultable à l'aide d'un navigateur web, où la...

1

lami20j, le 25 aoû 2008 à 10:22:19
  • +1

Salut,

dans /etc/sudoeurs on ne mets pas les paramètres passer au script

tu peux essayer de mettra ça

www-data ALL=NOPASSWD: /etc/init.d/nagios
et créer un script qui sera lancer par le clic
#!/bin/bash
/etc/init.d/nagios reload


106485010510997108

Répondre à lami20j

2

Slyers, le 25 aoû 2008 à 14:24:51

Je te remercie d'avoir répondu.
Cependant, ça ne fonctionne toujours pas.
J'ai également essayé en ligne de commande avec l'user www-data de faire /etc/init.d/nagios reload, mais il n'est pas d'accord...
Il me mets "CONFIG ERROR! Reload aborted. Check your nagios configuration".
Avec l'utilisateur root, aucun soucis.
J'ai essayé de mettre www-data dans le groupe nagcmd mais il y était déjà!
Donc, d'après le message, cela viendrait plus de Nagios que de Debian, c'est bizarre.

Merci.

Répondre à Slyers

3

lami20j, le 25 aoû 2008 à 14:57:41
  • +1

Re,

affiche le contenu de /etc/init.d/nagios 106485010510997108

Répondre à lami20j

4

Slyers, le 25 aoû 2008 à 16:12:38

Voila le script de /etc/init.d/nagios
Je ne suis pas sûr qu'il soit très utile.
En tout cas, je ne cache que j'ai pas mal de difficultés à comprendre toutes les commandes.

# Description: Starts and stops the Nagios monitor
# used to provide network services status.
#

killproc_nagios ()
{

kill $2 $NagiosPID

}


pid_nagios ()
{

if test ! -f $NagiosRunFile; then
echo "No lock file found in $NagiosRunFile"
exit 1
fi

NagiosPID=`head -n 1 $NagiosRunFile`
}


# Source function library
# Solaris doesn't have an rc.d directory, so do a test first
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
elif [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
fi

prefix=/usr/local/nagios
exec_prefix=${prefix}
NagiosBin=${exec_prefix}/bin/nagios
NagiosCfgFile=${prefix}/etc/nagios.cfg
NagiosStatusFile=${prefix}/var/status.dat
NagiosRetentionFile=${prefix}/var/retention.dat
NagiosCommandFile=${prefix}/var/rw/nagios.cmd
NagiosVarDir=${prefix}/var
NagiosRunFile=${prefix}/var/nagios.lock
NagiosLockDir=/var/lock/subsys
NagiosLockFile=nagios
NagiosCGIDir=${exec_prefix}/sbin
NagiosUser=nagioscommander
NagiosGroup=nagioscommander


# Check that nagios exists.
if [ ! -f $NagiosBin ]; then
echo "Executable file $NagiosBin not found. Exiting."
exit 1
fi

# Check that nagios.cfg exists.
if [ ! -f $NagiosCfgFile ]; then
echo "Configuration file $NagiosCfgFile not found. Exiting."
exit 1
fi

# See how we were called.
case "$1" in

start)
echo -n "Starting nagios:"
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
rm -f $NagiosCommandFile
touch $NagiosRunFile
chown $NagiosUser:$NagiosGroup $NagiosRunFile
$NagiosBin -d $NagiosCfgFile
if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
echo " done."
exit 0
else
echo "CONFIG ERROR! Start aborted. Check your Nagios configuration."
exit 1
fi
;;

stop)
echo -n "Stopping nagios: "

pid_nagios
killproc_nagios nagios

# now we have to wait for nagios to exit and remove its
# own NagiosRunFile, otherwise a following "start" could
# happen, and then the exiting nagios will remove the
# new NagiosRunFile, allowing multiple nagios daemons
# to (sooner or later) run - John Sellens
#echo -n 'Waiting for nagios to exit .'
for i in 1 2 3 4 5 6 7 8 9 10 ; do
if status_nagios > /dev/null; then
echo -n '.'
sleep 1
else
break
fi
done
if status_nagios > /dev/null; then
echo ''
echo 'Warning - nagios did not exit in a timely manner'
else
echo 'done.'
fi

rm -f $NagiosStatusFile $NagiosRunFile $NagiosLockDir/$NagiosLockFile $NagiosCommandFile
;;

status)
pid_nagios
printstatus_nagios nagios
;;

checkconfig)
printf "Running configuration check..."
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
echo " OK."
else
echo " CONFIG ERROR! Check your Nagios configuration."
exit 1
fi
;;

restart)
printf "Running configuration check..."
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
echo "done."
$0 stop
$0 start
else
echo " CONFIG ERROR! Restart aborted. Check your Nagios configuration."
exit 1
fi
;;

reload|force-reload)
printf "Running configuration check..."
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
echo "done."
if test ! -f $NagiosRunFile; then
$0 start
else
pid_nagios
if status_nagios > /dev/null; then
printf "Reloading nagios configuration..."
killproc_nagios nagios -HUP
echo "done"
else
$0 stop
$0 start
fi
fi
else
echo " CONFIG ERROR! Reload aborted. Check your Nagios configuration."
exit 1
fi
;;

*)
echo "Usage: nagios {start|stop|restart|reload|force-reload|status|checkconfig}"
exit 1
;;

esac

# End of this script

Je te remercie de m'aider

Répondre à Slyers

5

Slyers, le 26 aoû 2008 à 08:24:20

Excuses moi de t'avoir pris du temps, je viens de comprendre quelque chose...
En fait, c'est la première fois que j'utilise visudo, et j'avais pas compris que l'utilisateur doit ensuite faire sudo <commande> pour que ça fonctionne....
Désolé.
Merci de m'avoir aidé, bonne journée.

Répondre à Slyers

6

lami20j, le 26 aoû 2008 à 08:36:29
  • +1

Salut,

que l'utilisateur doit ensuite faire sudo <commande> pour que ça fonctionne....
effectivement ;-)

ton problème est alors résolu?! 106485010510997108

Répondre à lami20j

7

 slyers, le 26 aoû 2008 à 14:20:33

Oui,
il l'est, merci à toi lami20j.
Mon script fonctionne maintenant comme je le souhaitais (et en plus, j'ai appris à utiliser visudo, voila une journée bénéfique...)

Répondre à slyers