#1 Le 08/08/2020, à 17:36
- airvb
Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Bonjour , la 20.04.1 est arrivé et j'ai donc effectué la migration .
un seul bemol .. pour l'instant
J'ai un tout petit script en bash qui récupére la température de l’aéroport voisin.
#!/bin/bash
# test
param="lfpo -nm"
lfpo=$(/home/airvb/weather-2.3/weather --setpath /home/airvb/weather-2.3/ $param | grep Temperature)
#echo "lfpo" $lfpo
lfpo=$(echo $lfpo | sed -e 's/[^-.0-9]//g')
lfpo=$((lfpo+0))
echo $lfpo
Résultat :
airvb@airvb-serveur:~$ ./alpha.sh
38
Le code est réduit pour l'exemple
J'essaie ensuite de mettre cela sous forme de plugins munin en placant ds le dossier adéquat et en créant le lien symbolique qui va bien
un petit coup de munin-run pour essayer et là c'est nouveau il me demande mot de passe que je pense être celui de root ( J'ai pas souvenir qu'en 18.04 cela était pareil.)
airvb@airvb-serveur:~$ munin-run alpha
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or other units.
Authenticating as: airvb
Password:
==== AUTHENTICATION COMPLETE ===
/etc/munin/plugins/alpha: line 6: /home/airvb/weather-2.3/weather: Permission denied
0
En sudo munin-run, même combat
irvb@airvb-serveur:~$ sudo munin-run alpha
/etc/munin/plugins/alpha: line 6: /home/airvb/weather-2.3/weather: Permission denied
0
Les droits sur le dossier weater :
drwxrwxr-x 4 airvb airvb 4096 Aug 8 18:17 .weather-2.3
drwxrwxr-x 3 airvb airvb 4096 Jun 30 19:25 weather-2.3
J'ai regardé polkit mais j'avoue que si quelqu'un pouvais dégrossir le sujet ...
Mci d'avance.
Dernière modification par airvb (Le 09/08/2020, à 11:29)
Hors ligne
#2 Le 08/08/2020, à 18:43
- kamaris
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Quel est le retour de
ls -l /home/airvb/weather-2.3/weather
Hors ligne
#3 Le 08/08/2020, à 20:45
- airvb
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
airvb@airvb-serveur:~$ ls -l /home/airvb/weather-2.3/weather
-rwxrwxr-x 1 airvb airvb 4347 Dec 6 2018 /home/airvb/weather-2.3/weather
Hors ligne
#4 Le 08/08/2020, à 22:21
- kamaris
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Je vois pas ce qui bloque, désolé
Hors ligne
#5 Le 09/08/2020, à 08:58
- bruno
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
C'est bien un problème de droits d'accès.
Le script /home/airvb/weather-2.3/weather doit être accessible à l'utilisateur munin (ou root suivant la configuration de plugins-conf.d/munin-node). Il faut vérifier les droits sur l'ensemble de l’arborescence et pas seulement sur le fichier de script :
/home doit être en r-x pour tous ;
/home/airvb/ doit être en r-x pour tous ;
/home/airvb/weather-2.3 doit être en r-x pour tous.
Le mieux serait de placer ce script dans un endroit standard comme /usr/local/bin
Si malgré cela l'erreur « permission denied » persiste il faudra nous montrer le contenu du script.
#6 Le 09/08/2020, à 10:18
- cqfd93
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Modération
Un titre en français serait quand même plus adapté sur un forum francophone…
− cqfd93 −
En ligne
#7 Le 09/08/2020, à 10:41
- airvb
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Merci pour ta réponse.
Ce que j'ai fait.
J'ai déplace le dossier /weather-2.3 ds /usr/local/bin et adapté le script
je test le script .sh en direct:
airvb@airvb-serveur:~$ /usr/share/munin/plugins/chaudiere.sh
ESSAI
temp1.value 26.1
temp2.value 31.4
lfpo.value 30
difference.value 49
delta.value 5
airvb@airvb-serveur:~$
Tout fonctionne
Si je lance via munin-run, :
La lecture via le script weather est ok. GOOD !
En revanche le message d'erreur pour l'enregistrement de cette donnée ds un fichier log à changé.
airvb@airvb-serveur:~$ munin-run chaudiere
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or other units.
Authenticating as: airvb
Password:
==== AUTHENTICATION COMPLETE ===
ESSAI
/etc/munin/plugins/chaudiere: line 14: /usr/local/bin/pcsensor.log: Read-only file system
temp1.value 26.1
temp2.value 31.4
lfpo.value 30
Je précise que j'ai changé l'emplacement d'enregistrement de ce fichier log ds /usr/local/bin avec les droits suivant :
airvb@airvb-serveur:~$ ls -al /usr/local/bin | grep pcsensor.log
-rwxrwxrwx 1 root root 24 Aug 9 11:00 pcsensor.log
Un peu plus loin j'enregistre une valeur ds un fichier texte et c'est "permission denied" comme avant.
cat: /home/airvb/chaudiere/heurechaud.txt: Permission denied
Tentrative des fois que avec un sudo munin-run
C'est pareil ,
Et chose étrange j'accède a ce serveur via ssh pour lancer mes différentes commandes,
Une fois la commande lancée le script ne se termine pas et le terminal devient inutilisable ... weird !
Ensuite suite à ta remarque j'ai replongé ds plugins-conf.d/munin-node
j'ai tenté :
[chaudiere]
user airvb
group airvb
En pensant que comme le script lancé directement fonctionne ...
pas mieux
J'ai tenté
[chaudiere]
user root
Et tjs pareil :
airvb@airvb-serveur:~$ munin-run chaudiere
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or other units.
Authenticating as: airvb
Password:
==== AUTHENTICATION COMPLETE ===
ESSAI
/etc/munin/plugins/chaudiere: line 14: /usr/local/bin/pcsensor.log: Read-only file system
temp1.value 26.2
temp2.value 31.4
lfpo.value 33
cat: /home/airvb/chaudiere/heurechaud.txt: No such file or directory
En final, je progresse la temperature est bien lu via le script weather , en revanche chaque enregistrement que fait le script ds un fichier ne se fait pas avec en fonction de son emplacement d’enregistrement un msg différent !
Read-only file system ds /usr/bin/local
et
denied sur mon home
Des idées ?
Mci encore
le script en entier .
#!/bin/bash
## TEST
echo "ESSAI"
param="lfpo -nm"
lfpo=$(/usr/local/bin/weather-2.3/weather --setpath /usr/local/bin/weather-2.3/ $param | grep Temperature)
#echo "lfpo" $lfpo
lfpo=$(echo $lfpo | sed -e 's/[^-.0-9]//g')
lfpo=$((lfpo+0))
# check si ok ds log
heure=$(date +%H:%M:%S)
echo $lfpo $heure >> /usr/local/bin/pcsensor.log
# Where is pcsensor located?
PCSENSOR="/usr/local/bin/temper-poll"
if [ ! -e ${PCSENSOR} ]; then
echo "Temper-poll executable not found" >&2
exit -1
fi
# avant
#echo "delta.warning 1:"
#echo "delta.critical -1:"
PCSENSOR="/usr/local/bin/temper-poll -c"
if [ "${1}" = "config" ]; then
echo "graph_title USB Thermometer 2"
echo "graph_scale no"
echo "graph_vlabel Celsius"
echo "graph_category sensors"
echo "graph_info Chaudiere"
# echo "graph_data_size custom 1h, 1d for 1w, 1w for 1m, 1m for 1y"
# echo "update rate 120"
echo "temp1.label Temp EXTerne"
echo "temp1.type GAUGE"
echo "temp1.info Temp EXTerne"
echo "temp1.colour 00FF00"
echo "temp1.draw LINE2"
echo "temp2.label Temp INTerne"
echo "temp2.type GAUGE"
echo "temp2.info Temp INTerne"
echo "temp2.colour FF3DBE"
echo "temp2.draw LINE2"
echo "lfpo.label LFPO Deg C"
echo "lfpo.type GAUGE"
echo "lfpo.draw LINE1"
# echo "temp2.warning 22:"
# echo "temp2.critical 21.40:"
# echo "temp2.warning 22:"
# echo "lfpo.colour 8BC34A"
echo "delta.label FLAG ALERTE"
echo "delta.type GAUGE"
echo "delta.warning 2"
echo "delta.critical 5"
echo "delta.draw LINE1"
echo "delta.colour FFED00"
echo "delta.info 0:OK 2:WARN 5:CRIT"
# echo "alerte.label Alerte"
# echo "alerte.type GAUGE"
echo "difference.label H depuis chauffe"
echo "difference.info Depuis derniere chauffe"
echo "difference.type GAUGE"
echo "difference.colour 0012FF"
echo "difference.draw LINE1"
echo "difference.draw AREA"
else
# 1er sensor EXTERNE
TEMP1=`${PCSENSOR} | sed '1 d'`
if [[ $? != 0 ]]; then
sleep 2
TEMP1=`${PCSENSOR} | sed '1 d'`
if [[ $? != 0 ]]; then
sleep 6
TEMP1=`${PCSENSOR} | sed '1 d'`
fi
fi
# 2ieme sensor
TEMP2=`${PCSENSOR} | sed '2 d'`
if [[ $? != 0 ]]; then
sleep 2
TEMP2=`${PCSENSOR} | sed '2 d'`
if [[ $? != 0 ]]; then
sleep 6
TEMP2=`${PCSENSOR} | sed '2 d'`
fi
fi
echo "temp1.value $TEMP1"
echo "temp2.value $TEMP2"
echo "lfpo.value $lfpo"
#echo ${TEMP1%%.*}
#echo ${TEMP2%%.*}
# passage en integer
TEMP2="${TEMP2%%.*}"
#test
#TEMP2=49
#echo "TEMP2 (interne) :" $TEMP2
if [ "$TEMP2" -ge 48 ] ; then
# on enregistre date heure
# date '+%Y%m%d%H%M%S'
date '+%Y%m%d%H%M%S' | tee /home/airvb/chaudiere/heurechaud.txt
echo `date +%Y/%m/%d-%H:%M:%S`
# reset alerte
alerte=0
echo "$alerte" | tee /home/airvb/chaudiere/alerte.txt
else
# on verifie si pas superieur à 24 h depuis la derniere chauffe
lastchauffe=`cat /home/airvb/chaudiere/heurechaud.txt`
#echo "lastchauffe:" $lastchauffe
maintenant=`date '+%Y%m%d%H%M%S'`
#echo "maintenant:" $maintenant
difference=`dateutils.ddiff -i '%Y%m%d%H%M%S' $lastchauffe $maintenant`
# echo "difference :" $difference " en seconde "
# passage en integer
difference="${difference%%s*}"
#echo "difference :" $difference
# on garde juste le digit des heures ecoules depuis la derniere chauffe
difference=`printf '%dh:%dm:%ds\n' $(($difference/3600)) $(($difference%3600/60)) $(($difference%60)) | sed 's/h.*//'`
echo "difference.value $difference"
if [ "$difference" -ge 24 ] ; then
echo "delta.value 5"
# plus de 24h depuis derniere chauffe
# delta critical 5
elif [ "$difference" -ge 16 ] ; then # 57600
# plus de 16h depuis derniere chauffe
# delta warning 2
oldalerte=`cat /home/airvb/chaudiere/alerte.txt`
echo "Old alerte :" $oldalerte
alerte=$(($oldalerte+1))
#echo "alerte :" $alerte
if [ "$alerte" -eq 1 ] ;then
# on previent
# delta warning
echo "delta.value 2"
echo "$alerte" | tee /home/airvb/chaudiere/alerte.txt
elif [ "$alerte" -le 12 ] ; then # 12
echo "$alerte" | tee /home/airvb/chaudiere/alerte.txt
else
# passer 12 on prévient à chauqe fois
echo "delta.value 2"
echo "$alerte" | tee /home/airvb/chaudiere/alerte.txt
fi
else
echo "delta.value 1"
alerte=0
# delta ok
fi
# echo "alerte.value $alerte"
fi
# "temp1.label Temp EXTerne"
# "temp2.label Temp INTerne"
# difference entrel a T interieur et exterieur de la chaudiere
# si proche de 0 alerte
#delta=$((${TEMP2%%.*} - ${TEMP1%%.*}))
# test temp neg pour alerte
# delta="$((delta * -1))"
#echo "delta.value $delta"
fi
Dernière modification par airvb (Le 09/08/2020, à 10:44)
Hors ligne
#8 Le 09/08/2020, à 11:27
- airvb
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
Modération
Un titre en français serait quand même plus adapté sur un forum francophone…
Était une forme d''humour raté" manifestement
Hors ligne
#9 Le 09/08/2020, à 12:00
- bruno
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
/etc/munin/plugins/chaudiere: line 14: /usr/local/bin/pcsensor.log: Read-only file system
L'erreur est explicite /usr/local/bin/pcsensor.log est situé sur un système de fichier monté en lecture seule. C'est ton système, tu dois donc savoir pourquoi.
De toute façon un fichier de logs n'a rien à faire à cet emplacement.
#10 Le 09/08/2020, à 15:26
- airvb
Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)
/etc/munin/plugins/chaudiere: line 14: /usr/local/bin/pcsensor.log: Read-only file system
L'erreur est explicite /usr/local/bin/pcsensor.log est situé sur un système de fichier monté en lecture seule. C'est ton système, tu dois donc savoir pourquoi.
De toute façon un fichier de logs n'a rien à faire à cet emplacement.
Certes, mais comment expliques-tu que lorsque je lance le bash directement depuis l'utilisateur airvb sans sudo ni rien il s'exécute normalement ?
Si /usr/local/bin était monté en Read Only cela ne devrait pas fonctionner non ?
J'ai l'impression que lorsque munin-node ou munin-run lance le script il n'a pas les 'bon' droits.
J'ai finalement contourné en deportant mes enregistrement ds /var/log/chaudiere avec un chmod 777 sur le dossier et cela fonctionne de nouveau
Merci.
Hors ligne