Forum Linux.gui Application root

Posté par  (site web personnel) .
Étiquettes : aucune
0
10
avr.
2006
Bonjour,

J'écris actuellement une application Qt/Kde (plus Kde que Qt).
Cette application doit pouvoir accéder a des donnés que seul l'utilisateur root doit normalement pouvoir accéder (partition, programme, ...) mais dont j'aimerai qu’elles puissent être utilisé en tant que simple utilisateur (entre autre pour le développement).

J'avais au préalable pensé au bit suid de l'exécutable. Malheureusement dés que je mets ce bit sur une application Qt : J'ai un message d'erreur comme quoi Qt ne gère pas ce bit.

J'ai pensé alors à un système, où au moment opportun (accès au donnés), le programme demande un mot de passe à l'utilisateur.
Mais je ne sais pas comment je peux implémenter cela.
Comment permettre à l'utilisateur d'accéder aux données accessibles normalement en root (escalade de privilège) ?

Est-ce qu'il existe des programmes ayant se fonctionnement ?

(PS : J'avais pensé à K3b, mais dans son cas c'est l'application cdrecord qui possède le bit suid, k3b n'en a pas besoin, et n’étant qu’une simple Interface graphique).
  • # KDESU

    Posté par  . Évalué à 1.

    D'apres ce que je vois, ce comportement existe dans kde avec l'utilitaire kdesu, tu peux soit :

    -l'utiliser
    -t'en inspirer

    Sinon, je crois que pam est fait pour ca
    • [^] # Re: KDESU

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

      Ok merci, je viens de regarder le source, et c'est vrai qu'il est interessant (permet d'executer des commandes en tant qu'un autre utilisateur).

      Le problème est cependant que je dois accèder à certain fichier (/dev/hda, ...) auquels je n'ai pas accés en tant que simple utilisateur.

      Pour info : kdesu appelle la commande su.
  • # Méthode de developpement

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

    Est-ce qu'il y a des méthodes de dèveloppement permettant de développer une application administrateur sans en être un ?
    • [^] # Re: Méthode de developpement

      Posté par  . Évalué à 2.

      Si ta question, c'est "je cherche un crack pour pirater le réseau de ma FAC", alors à priori non , il n'y en a pas. C'est même tout l'intérêt du système. Il faudra à la place exploiter les failles de sécurité.

      Maintenant, si tu veux faire de la vraie maintenance, la plupart du temps cela relève des droits d'accès plus que de la structure de l'application.

      Par exemple, la gestion des partitions d'un disque, donc tu parlais plus haut, se fait en gérant la table des partitions qui se trouve sur le premier secteur (le MBR) du disque lorsque c'est un IDE. Il suffit de donner les droits d'accès avec un "chmod" sur " /dev/hd* " pour que l'utilisateur lambda ait le droit de le faire. Bon, dans ce cas précis, ce n'est pas tout-à-fait vrai car il faut en plus demander au système de relire la table et ça, cela peut demander les privilèges du super-user.

      Mais dans tous les cas, l'objectif à atteindre est de se passer au maximum des droits root.
      • [^] # Re: Méthode de developpement

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

        Merci de t'en soucier, mais je ne vais plus à la fac :).
        Et je n’ai pas l’intention de cracker ma propre machine.

        Par contre chez moi, pendant mon temps libre, j'écris un logiciel dont le but et de lire et d'écrire sur les partitions d'un disque dur (sans passer par le system de fichier).
        Cela nécessite donc d'avoir le droit en lecture et écriture sur /dev/hdaX.

        Chez moi, il n'y a pas de problème, je peux me donner les droits. Mais je n'ai pas trop envie de le faire (même si c'est ce que je fais pour l'instant) car ce n'est pas très sécurisé ! Autant développer l'application en tant qu'Administrateur, comme je le faisais sous Windows auparavant.
        En plus imaginons que je mon program bug (pas possible ;)) et je me retrouve avec des Systems de Fichiers corrompus ou complètement inaccessible. Et puis mes partitions sont montées quand je les utilise.

        Niveau méthode de développement, je pensais plutôt à des trucs du genre : exécuter l'application sous Qemu : Le problème étant que cela nécessite de copier l'application a chaque fois que l'on veut faire des tests, ..., ou de développer l’application sous Qemu, ce qui ne me fais pas plaisir non plus.

        Donc je me demandé s'il y avait des méthodes pour développer des applications à usage d'Administrateur.

Suivre le flux des commentaires

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