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

Script et SUID

3 réponses
Avatar
condo4
Bonjour,

Je cherche a me faire un petit portail web intranet affichant l'etat
de mes disques dures.
Pour cela, hdparm -C /dev/hdb me retourne ce que je veux.
j'avais donc pens=E9 dans un premier temps faire un script python qui
pour tout mes disque appel hdparm -C et afffiche l'etat.
Du style :
DISK1 active/idle
DISK2 standby
.=2E....

Ensuite, je pensais le mettre en SUID (chmod 4755)
Puis dans mon portail web en PHP j'aurais appel=E9 ce programme et
trait=E9 le resultat avant affichage.


Malheureusement, a premiere vu, m=EAme avec SUID mon script n'est pas
execut=E9 en ROOT lors de l'appel par un user.

Alors, j'ai ecrit un autre script :
____________________________
#!/bin/sh
python /chemin/monprograme
____________________________

Je l'ai mis en SUID mais le resultat est le meme... comme si mon
script n'est pas execut=E9 en root...

Comment faire?
Tout en ayant un minimum de securit=E9...

3 réponses

Avatar
Pascal Hambourg
Salut,


Je cherche a me faire un petit portail web intranet affichant l'etat
de mes disques dures.
Pour cela, hdparm -C /dev/hdb me retourne ce que je veux.
j'avais donc pensé dans un premier temps faire un script python qui
pour tout mes disque appel hdparm -C et afffiche l'etat.
[...]

Ensuite, je pensais le mettre en SUID (chmod 4755)
Puis dans mon portail web en PHP j'aurais appelé ce programme et
traité le resultat avant affichage.

Malheureusement, a premiere vu, même avec SUID mon script n'est pas
executé en ROOT lors de l'appel par un user.


Le SUID ne marche pas avec les scripts, pour des raisons de sécurité.
Tu pourrais par exemple faire exécuter hdparm périodiquement par une
tâche cron en root et enregistrer le résultat quelque part. Le site
n'aurait plus qu'à qu'à récupérer les résultats là où ils sont stockés.

Avatar
Thierry B.
--{ condo4 a plopé ceci: }--

Je l'ai mis en SUID mais le resultat est le meme... comme si mon
script n'est pas executé en root...

Normal. Le kernel n'honore pas le bit suid sur les scripts

pour des raisons de sécurité.

Comment faire?
Tout en ayant un minimum de securité...


Il faut écrire un wrapper en C qui se chargera de vérifier
le contexte d'exécution et lancera le script Python.



--
je cherche ou télécharger windows média player ou mieux un lecteur me
permettant d'écouter les radios de préférence en format rpm je ne sais pas
charger un autre format je suis sous mandriva 2007
--{ Bon, reprenons du début... }--

Avatar
condo4
Ok merci pour vos reponse...
Du coup, la solution que j'ai fait : un petit prog en C, qui appel
hdparm -C /dev/hdX avec X passé en parametre.
Du coup, c'est sur ce programme que j'ai mis le SUID.
Ensuite, j'ai un script python qui appel ce programme et qui fait les
truc compliqué (analyse du resultat, travail sur chaine de
caratère....)
c'est pas que c'est infesable en C, mais telement plus comfortable en
python lol

Enfin, c'est bon, j'ai ce que je veux...

@+Fab