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

Raspberry Pi Discussion :

Programme utilisant les entrées/sorties numériques du Raspberry


Sujet :

Raspberry Pi

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Programme utilisant les entrées/sorties numériques du Raspberry
    Bonjour à toutes et à tous,

    Est-ce qu'un programme utilisant les GPIO (bus i2c ou bus SPI ou GPIO ...) doit être obligatoirement être lancé sous "root" .

    Sinon, que faut-il faire ?

    Cordialement.

    Pierre

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Bonjour,

    Tu as déjà posé la question. Dans la même discussion :
    https://www.developpez.net/forums/d2.../#post11150307
    https://www.developpez.net/forums/d2.../#post11151716
    Tu dois ajouter l'utilisateur Pi dans le groupe GPIO.

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par Auteur Voir le message
    ... Tu as déjà posé la question. ...
    C'est vrai, mais sous une autre forme.

    Citation Envoyé par Auteur Voir le message
    ... Tu dois ajouter l'utilisateur Pi dans le groupe GPIO.
    J'avais répondu que cela était fait.

    De plus, ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pi@raspberrypi:~/Projets_Lazarus/Baromètre_Num $ ls -al Baro_Num
    -rwxr-xr-x 1 root root 24751956 oct.   7 17:09 Baro_Num
    montre que mon programme "Baro_Num" dispose des droits d'accès.

    Pour autant, je suis obligé de le lancer avec "sudo" ; c'est-à-dire être "root".

    Mais c'est peut-être normal, je n'ai certainement toujours rien compris à ces droits d'accès !

    Cordialement.

    Pierre

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Ok. J'avais mal compris ta question.

    Si tu fais un clic droit sur ton exécutable peux-tu modifier les droits de l'exécutable ? Et donner les droits d'exécution à n'importe quel utilisateur ?

    Sinon essaye avec l'instruction chmod (à utiliser avec sudo)
    Plus de détails :
    https://askubuntu.com/questions/2295...n-from-a-termi
    https://ss64.com/bash/chmod.html

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par Auteur Voir le message
    ... Si tu fais un clic droit sur ton exécutable peux-tu modifier les droits de l'exécutable ? Et donner les droits d'exécution à n'importe quel utilisateur ? ...
    Je ne comprends pas , j'ai déjà tous les droits comme je l'avais dit hier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pi@raspberrypi:~/Projets_Lazarus/Baromètre_Num $ ls -al Baro_Num
    -rwxr-xr-x 1 root root 24751956 oct.   7 17:09 Baro_Num
    que faire de plus ?

    Cordialement.

    Pierre

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut à tous.

    Citation Envoyé par ChPr
    Est-ce qu'un programme utilisant les GPIO (bus i2c ou bus SPI ou GPIO ...) doit être obligatoirement être lancé sous "root" .
    La question a déjà été posée dans un autre sujet et j'avais répondu.
    --> https://www.developpez.net/forums/d2.../#post11151716

    Pour ce rafraichir la mémoire :
    --> https://doc.ubuntu-fr.org/permissions
    --> https://wiki.debian-fr.xyz/Commandes...urs_et_groupes

    Si je comprends bien, il vous manque des commandes pour faire ce que vous voulez faire.
    Commençons par tester un programme au niveau de vos permissions d'accès. Voici le petit programme :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    echo "ca fonctionne !"
    whoami
    cd /root
     
    exit 0
    Vous êtes dans le compte "pi" et vous allez faire ceci :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    su root
    {vous saisissez le mot de passe du compte root}
     
    chown root:root zzz.sh
    chmod 4777 zzz.sh
     
    exit
    Après ces commandes, vous vous retrouvez dans le compte "pi".
    Ce programme appartient au compte "root" et au groupe "root".
    Si vous exécutez "./zzz.sh", c'est comme si vous étiez "root" tout en étant dans le compte "pi".
    Pour l'affichage, tout va bien, sauf en ce qui concerne l'accès au répertoire "/root".

    Je rappelle que le répertoire "/root" à les droits d'accès suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drwx------  26 root root  4096 oct.   9 13:04 root
    si vous désirez un accès, alors vous devez le définir ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drwx-----x  26 root root  4096 oct.   9 13:04 root
    en tapant la commande suivante :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo chmod o+X /root
    Pourquoi en tant que "pi", l'accès se fait par "other" ?
    Parce que le propriétaire du répertoire "/root" est "root" et il appartient au groupe "root".
    Et que vous êtes ni le propriétaire, ni dans le groupe du propriétaire.

    Ainsi tout le monde peut accéder au contenu du répertoire "/root" (ce n'est pas forcément une bonne idée, mais c'est pour l'exemple).
    Et du coup, en exécutant le programme, cette fois-ci vous avez les permissions.

    Ou bien, vous mettez le compte "pi" dans le groupe "root" :
    mais par contre, vous définissez les permission d'accès au répertoire de cette façon là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drwx--x---  26 root root  4096 oct.   9 13:04 root
    en tapant la commande suivante :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo chmod g+X /root
    Vous devez redémarrer votre raspberry pour que les modifications soient activées.
    Je sais, ce n'est pas facile à comprendre !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Je te remercie "Artemus" pour toutes ce explications.

    Pour autant, tout ceci me paraît bien compliqué, simplement pour éviter de lancer mon programme avec "sudo".

    Par ailleurs, mon programme (et d'autres) utilisant les GPIO sont en cours de développement ou d'essais ; ce qui veut dire que je les recompile à tout bout de champ et je me suis aperçu, qu'après la compilation, le droit "s" était perdu.

    Donc, pour moi, pour l'instant et dans ces conditions, le plus simple est de lancer Lazarus avec "sudo", ce qui me permet d'exécuter mes programmes sans autre forme de procès.

    Néanmoins, je retiens les informations que tu m'as données.

    Cordialement.

    Pierre

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut ChPr.

    Pour approfondir la question, cherchez sous google avec les mots "sticky bit".

    Pour la compilation+édition des liens, qu'est-ce qui vous empêche de mettre ces commandes dans votre fichier makefile ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2008, 14h31
  2. La meilleure syntaxe pour les entrées/sorties
    Par Lunixinclar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2007, 13h55
  3. Réponses: 1
    Dernier message: 02/05/2006, 11h41

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