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

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.

Hors ligne

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

cqfd93 a écrit :

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.

Hors ligne

#10 Le 09/08/2020, à 15:26

airvb

Re : Droits perdus suite maj 20.04.1 (was Lost rights in migration)

bruno a écrit :
/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