Bonjour, j ai créé un programme en c "nrf24l01" pour interagir avec un nrf24l01, ca fonctionne trés bien en consol.
j 'ai mis le fichier issue de la compilation dans le dossier usr\local\bin pour pouvoir l 'appeler de n 'importe où, j'ai également débloqué tous les droit(chmod 777)
Pour pouvoir y accéder depuis une page en php j' écrit la commande exec( "nrf24l01") sans réussite.
mais dans le log de apache, j 'ai l erreur suivante: unable to open \dev\mem : permission denied.
j'ai également créé un fichier dans etc\sudoers.d avec à l intérieur :
www-data ALL=(ALL) NOPASSWD:ALL (si j 'ai bien compris ca ouvre tous les droits sans mot de passe à l 'utilisateur www, bon ca crée un problème de sécurité mais j affinerais ca plus tard).
je pense que c'est un problème de droits pour lancer un programme depuis php , mais là je patauge totalement dans ces histoires de droits.
si vous avez des pistes pour attribuer des droits.....
a votre bon cœur messieurs dames
@+
[PHP] - droit acces pour programme php [RESOLU]
Modérateur : Francois
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
[PHP] - droit acces pour programme php
Modifié en dernier par guillaume9344 le mar. 5 mai 2015 12:45, modifié 1 fois.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: droit acces pour programme php
Bonjour,
Il faut que tu lances la commande avec sudo pour que l'édition du fichier des sudoers ai un intérêt
exec( "nrf24l01") => exécute la commande en tant que www-data sans autre droits que les siens
exec( "sudo nrf24l01") => exécute la commande en tant que www-data, et en lui accordant des droits plus important (avec notamment l''accès a /dev/mem que nécessite ton programme nrf24l01
Tu as peut-être déjà testé ce point mais ce n'est pas précisé dans ton post.
Il faut que tu lances la commande avec sudo pour que l'édition du fichier des sudoers ai un intérêt
exec( "nrf24l01") => exécute la commande en tant que www-data sans autre droits que les siens
exec( "sudo nrf24l01") => exécute la commande en tant que www-data, et en lui accordant des droits plus important (avec notamment l''accès a /dev/mem que nécessite ton programme nrf24l01
Tu as peut-être déjà testé ce point mais ce n'est pas précisé dans ton post.
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: droit acces pour programme php
CQFD
c'est bien ça , d'autant plus que en local j'appelai le programme avec sudo ..........
Comme quoi au bout de plusieurs heures la tete dans les codes , on voit plus rien, et j 'avai testé aussi avec sudo mais avant de modifier les fichiers sudoers.
Par contre maintenant pour le fichier de config sudoers, au lieu de www-data ALL=(ALL) NOPASSWD:ALL , par quoi je remplace all , par le chemin de dev\mem ou par le chemin de nrf24l01?
@+
c'est bien ça , d'autant plus que en local j'appelai le programme avec sudo ..........
Comme quoi au bout de plusieurs heures la tete dans les codes , on voit plus rien, et j 'avai testé aussi avec sudo mais avant de modifier les fichiers sudoers.
Par contre maintenant pour le fichier de config sudoers, au lieu de www-data ALL=(ALL) NOPASSWD:ALL , par quoi je remplace all , par le chemin de dev\mem ou par le chemin de nrf24l01?
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
-
- Administrateur
- Messages : 3233
- Enregistré le : mer. 17 sept. 2014 18:12
- Localisation : Seine et Marne
Re: droit acces pour programme php [RESOLU]
Salut guillaume,
Comme je suis fainéant
Je vais te donner un lien vers un Post ou j'expliquais comment faire, tu as juste à changer les chemins.
En Bref, tu crées un Alias des commandes autorisées, puis tu informes que www-data à droit d'exécuter les commandes de ton Alias avec Sudo.
Voir le post : viewtopic.php?f=71&t=285&start=20#p4634
Je suis certain que tu t'en sortiras avec ces explications
Comme je suis fainéant
Je vais te donner un lien vers un Post ou j'expliquais comment faire, tu as juste à changer les chemins.
En Bref, tu crées un Alias des commandes autorisées, puis tu informes que www-data à droit d'exécuter les commandes de ton Alias avec Sudo.
Voir le post : viewtopic.php?f=71&t=285&start=20#p4634
Je suis certain que tu t'en sortiras avec ces explications
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.