Forum général.général suid_bit : le retour (sur une applet)

Posté par  (site web personnel) .
Étiquettes : aucune
0
29
juin
2005
Bonjour forum,
Aujourd'hui j'ai fini mon premier programme en C qui fait autre chose qu'imprimer Hello World à l'écran. C'est une applet qui surveille le niveau des piles des souris Logitech (ouaaaaah).
Le problème 1 (résolu), c'est que l'applet se sert de lmctl, qui exige d'être root. J'ai donc implanté le suid bit.
Le problème 2 (j'utilise gai, un framework pour la création d'applets), c'est que maintenant il utilise le gconf du root (enfin il essaye), et ça merdouille au niveau du chargement. La solution potentielle, c'est charger en pas root, et faire un seteuid avant chaque execution de lmctl, mais c'est lourd (quoique toutes les 5 minutes...). Y a pas une autre solution d'après toi ?
  • # Dangereux

    Posté par  . Évalué à 2.

    Le SUID root, c'est un gros risque pour la sécurité du système. Il ne faut jamais faire de programmes X (encore moins GTK) SUID root.

    Tu devrais faire un programme SUID le plus simple possible (par exemple un programme qui lit les infos, puis qui les imprime sur le stdout). Ensuite utilise ce programme à partir de ton applet (qui n'est pas SUID).
    • [^] # Re: Dangereux

      Posté par  (site web personnel) . Évalué à 1.

      C'est dangereux même si je refais un setreuid pour basculer vers un utilisateur normal ? Ca va faire un wrapper de plus, mais après tout pourquoi pas...
  • # bravo...

    Posté par  . Évalué à 3.

    pour ton premier programme.
    Pour la suite voila comment je verrait les choses.
    Le plus propre pour la suite serait de mixer la partie qui t'interesse de lmctl avec le module usb-mouse du kernel linux pour lui faire generer dans le systeme de fichier /proc/... un fichier que tu pourrais lire depuis n'importe quel programme user sans avoir toute ces manip a faire pour avoir l'information.ce fichier contiendrai l'info de niveau des piles de ta souris.
    • [^] # Re: bravo...

      Posté par  (site web personnel) . Évalué à 1.

      Le code de lmctl est spécifique aux souris logitech, et je ne sais pas si il est "secure", de plus je me vois pas aller tripatouiller les drivers de linux ("oh ben tiens ? j'ai plus de souris ?" ;-) ). A voir...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.