Script et SUID

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


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.

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é en root

Comment faire?
Tout en ayant un minimum de securité
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal Hambourg
Le #1895931
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.

Thierry B.
Le #1895929
--{ 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... }--

condo4
Le #1901210
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
Publicité
Poster une réponse
Anonyme