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
Version imprimable
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:
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
Salut à tous.
La question a déjà été posée dans un autre sujet et j'avais répondu.Citation:
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:
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:
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:drwx------ 26 root root 4096 oct. 9 13:04 root
en tapant la commande suivante :Code:drwx-----x 26 root root 4096 oct. 9 13:04 root
Pourquoi en tant que "pi", l'accès se fait par "other" ?Code: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:sudo addgroup pi root
en tapant la commande suivante :Code: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:sudo chmod g+X /root
Je sais, ce n'est pas facile à comprendre !
@+
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 ?
@+