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
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
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.
C'est vrai, mais sous une autre forme.
J'avais répondu que cela était fait.
De plus, ce qui suit :
montre que mon programme "Baro_Num" dispose des droits d'accès.
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
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
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
Je ne comprends pas , j'ai déjà tous les droits comme je l'avais dit hier :
que faire de plus ?
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
Cordialement.
Pierre
Salut à tous.
La question a déjà été posée dans un autre sujet et j'avais répondu.Envoyé par ChPr
--> 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 :
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 #!/bin/bash echo "ca fonctionne !" whoami cd /root exit 0
Après ces commandes, vous vous retrouvez dans le compte "pi".
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
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 :
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------ 26 root root 4096 oct. 9 13:04 root
en tapant la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part drwx-----x 26 root root 4096 oct. 9 13:04 root
Pourquoi en tant que "pi", l'accès se fait par "other" ?
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part sudo chmod o+X /root
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 sudo addgroup pi root
en tapant la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part drwx--x--- 26 root root 4096 oct. 9 13:04 root
Vous devez redémarrer votre raspberry pour que les modifications soient activées.
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part sudo chmod g+X /root
Je sais, ce n'est pas facile à comprendre !
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager