IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

iotcl: operation non permise


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut iotcl: operation non permise
    Bonjour,
    A l'intérieur d'une application complexe de LINUX RHES 5, j'ai écrit un petit module beeper classique pour activer / désactiver le son avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
      int frequency, console_fd ;
     
      if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
        perror("open");
        return;
      }
      else
      {
          frequency = 6000;
          if (ioctl(console_fd, KIOCSOUND, frequency) == -1)
                  perror("ioctl");
      }
    Ce module fonctionne parfaitement quand j'exécute mon application en "su". Par contre, il sort un message d'erreur "ioctl: Opération non permise" quand l'application est activée avec un utilisateur sans privilège particulier. Or cela est une exigence.

    J'aimerais savoir si quelqu'un parmi vous a une solution pour que ce module soit exécuté sans erreur par un utilisateur courant.

    Mes recherches ont été vaines sur le net: la solution de contournement (chown root myappli; chmod a+s myappli) ne marche pas car d'autres contrôles d'identification de l'application l'arrêtent quand l'application n'est pas exécutée par le bon destinataire.

    Merci à l'avance et cordialement.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    si tu es avec X, tu as

    ou


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut XBell à la place de ioctl (Suite) ?
    Bonsoir,
    J'ai déjà essayé XBell / XKeyboardControl ... Mais cette solution ne me convient pas a priori. La durée du beeper peut être très longue (quelques heures ...) selon mes besoins. Or selon mes tests, quand je met bell_duration à quelques minutes, XServer sort déjà des erreurs de paramétrage. De plus, je pense que cette solution consomme beaucoup plus de ressources de machine que ioctl.
    Merci à l'avance.

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par KiKiTiTi Voir le message
    Mes recherches ont été vaines sur le net: la solution de contournement (chown root myappli; chmod a+s myappli) ne marche pas car d'autres contrôles d'identification de l'application l'arrêtent quand l'application n'est pas exécutée par le bon destinataire.
    Tu peux faire quelque chose de plus propre sur la même base avec setreuid(), qui règlera ce problème d'identité.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Précisions
    Bonjour,

    Pourrais-tu préciser ta suggestion ?
    L'utilisation des fonctions du type set/getuid ... permet à super-user de devenir un user sans privilèges mais il ne fonctionne pas dans le sens inverse. Or notre application doit être activée par un user sans privilèges.

    Merci à l'avance et cordialement.

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    tu actives le bit set UID root, et tu joues avec setreuid() pour passer user quand tu as besoin d'être user, ou root quand tu as besoin d'être root.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Suite
    Excusez-moi. Je ne vois toujours pas l'issue par ta suggestion. Pour activer les flags eui ou rui du su, je dois lancer l'application en tant que su. Or c'est ce que je cherche à l'éviter pour des raisons indiquées précédemment. Sinon l'application lancée par un user courant n'est pas un processus privilégié. Donc on ne peux pas basculer à ui du su à l'intérieur de cette application ?

    Merci à l'avance

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    peut-etre si on savait un peu plus sur ce que tu veux faire, en fait...
    on pourrait peut-etre aider...mieux....

Discussions similaires

  1. mise à jour non permise en VB6
    Par roura dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/08/2007, 08h40
  2. XMLHttpRequest -> erreur HTTP 405 (méthode non permise)
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 17/07/2007, 09h04
  3. [8.5] message "operation non prise en charge a été tentée"
    Par JJTIRODE dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 23/05/2007, 14h38
  4. Operation non applicable
    Par mario9 dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/08/2006, 19h15
  5. [JDBC] Opération non valide sur un ensemble
    Par marti dans le forum JDBC
    Réponses: 2
    Dernier message: 13/10/2005, 19h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo