Bonsoir à tous,
Un truc certainement très simple que je ne maîtrise pas :
Je souhaite écrire dans une fichier dont l'utilisateur est pi (/home/pi/config/monfichier) par l’intermédiaire d'un script PHP, soit l'utilisateur www-data.
Plus qu'une réponse, avez-vous un lien me permettant, une bonne fois pour toute, de comprendre le fonctionnement des droits et de leur maniement ?
Cordialement,
[RESOLU] - Les droits utilisateurs
Modérateurs : Francois, maxty01
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
[RESOLU] - Les droits utilisateurs
Modifié en dernier par phdenaujan le jeu. 28 mai 2015 21:36, modifié 1 fois.
Ph.
-
- Modérateur
- Messages : 790
- Enregistré le : dim. 16 nov. 2014 20:53
- Localisation : Charleroi - Belgique
Re: Les droits utilisateurs
Bonsoir phdenaujan,
Pour répondre à votre premier problème, pour donner les droits d'écriture à un utilisateur,
Il faut s'assurer que l'utilisateur soit le propriétaire du fichier, on dans un groupe propriétaire.
Le plus simple serait de donner à ton utilisateur "www-data" la propriété du fichier et de garder le groupe "pi" comme groupe propriétaire,
sans oublier de donner le droit d'écrire dans le fichier au groupe "pi".
Voici un petit résumé, concocté minute, pour t'aider dans cette tâche :
Pour vérifier les droits d'un fichier :
Cette commande donnera certaines informations, dont le propriétaire et le groupe propriétaire.
Je prends exemple sur un fichier "test" :
La première partie, donne les différents droits (-rw-r--r--)
Le "r" signale que le fichier peut être lu
Le "w" signale que le fichier peut être écrit
Le "x" signale que le fichier peut être exécuté (pas dans notre cas)
Cette première partie est une succession de droit pour 3 types d'utilisateurs:
La première partie (-rw-r--r--) est dédiée à l'utilisateur propriétaire.
La seconde partie (-rw-r--r--) est dédiée au groupe propriétaire.
La dernière partie (-rw-r--r--) est dédiée aux autres utilisateurs.
Le premier "tiret" (-rw-r--r--) n'est pas important dans notre cas.
Conclusion de cette partie : le propriétaire peut lire et écrire le fichier, le groupe peut lire le fichier et les autres peuvent lire le fichier.
Dans mon cas : l'utilisateur pi peut lire et écrire le fichier, le groupe pi peut lire le fichier et les autres peuvent lire le fichier.
Maintenant, passons à la partie "changement" de propriétaire :
Il est possible de changer l'utilisateur propriétaire avec la commande chown (CHange OWNer) :
Il est possible de changer le groupe propriétaire avec la commande chgrp (CHange GRouP) :
Il est également possible de changer l'utilisateur et le groupe propriétaire en une seule commande chown :
le premier qui rit ... ca va aller mal ... ok
Pour changer les droits, il existe la commande chmod (CHange file MODe bits).
Elle est plus complexe a maîtriser.
A l'origine, cette commande ne comprenait que de "droits" exprimé en 3 groupes de chiffre hexadécimale.
Les droits actuelle du fichier test, en hexadécimal représenterait 644.
Maintenant, il existe des commandes plus "user friendly".
Dans notre cas, nous souhaitons donner le droit d'écrire dans notre fichier au groupe pi :
Le "g" désigne le groupe, le "+" désigne l'ajout de droit, le "w" désigne le droit d'écrire dans le fichier.
Tout comme le "u" désigne l'utilisateur, le "o" désigne les autres, le "-" désigne le retrait de droit, le "r" désigne le droit de lire le fichier,
le "x" d'exécuter un fichier (exécutable) ou d'entrer dans un dossier (pour avoir la permission d'entrer dans un dossier, il faut pouvoir l'exécuter).
Bien entendu, tu trouvera des "tutos" mieux fait sur internet.
J'espère que ces informations t'aiderons.
Si tu as encore des question n'hésite pas.
Bonne soirée,
Pour répondre à votre premier problème, pour donner les droits d'écriture à un utilisateur,
Il faut s'assurer que l'utilisateur soit le propriétaire du fichier, on dans un groupe propriétaire.
Le plus simple serait de donner à ton utilisateur "www-data" la propriété du fichier et de garder le groupe "pi" comme groupe propriétaire,
sans oublier de donner le droit d'écrire dans le fichier au groupe "pi".
Voici un petit résumé, concocté minute, pour t'aider dans cette tâche :
Pour vérifier les droits d'un fichier :
Code : Tout sélectionner
pi@raspberrypi ~ $ ls -l
Je prends exemple sur un fichier "test" :
Code : Tout sélectionner
pi@raspberrypi /tmp $ ls -l test
-rw-r--r-- 1 pi pi 0 May 18 20:55 test
Le "r" signale que le fichier peut être lu
Le "w" signale que le fichier peut être écrit
Le "x" signale que le fichier peut être exécuté (pas dans notre cas)
Cette première partie est une succession de droit pour 3 types d'utilisateurs:
La première partie (-rw-r--r--) est dédiée à l'utilisateur propriétaire.
La seconde partie (-rw-r--r--) est dédiée au groupe propriétaire.
La dernière partie (-rw-r--r--) est dédiée aux autres utilisateurs.
Le premier "tiret" (-rw-r--r--) n'est pas important dans notre cas.
Conclusion de cette partie : le propriétaire peut lire et écrire le fichier, le groupe peut lire le fichier et les autres peuvent lire le fichier.
Dans mon cas : l'utilisateur pi peut lire et écrire le fichier, le groupe pi peut lire le fichier et les autres peuvent lire le fichier.
Maintenant, passons à la partie "changement" de propriétaire :
Il est possible de changer l'utilisateur propriétaire avec la commande chown (CHange OWNer) :
Code : Tout sélectionner
pi@raspberrypi /tmp $ sudo chown root test
pi@raspberrypi /tmp $ ls -l test
-rw-r--r-- 1 root pi 0 May 18 20:55 test
Code : Tout sélectionner
pi@raspberrypi /tmp $ sudo chgrp root test
pi@raspberrypi /tmp $ ls -l test
-rw-r--r-- 1 root root 0 May 18 20:55 test
Code : Tout sélectionner
pi@raspberrypi /tmp $ sudo chown pi:pi test
pi@raspberrypi /tmp $ ls -l test
-rw-r--r-- 1 pi pi 0 May 18 20:55 test
Pour changer les droits, il existe la commande chmod (CHange file MODe bits).
Elle est plus complexe a maîtriser.
A l'origine, cette commande ne comprenait que de "droits" exprimé en 3 groupes de chiffre hexadécimale.
Les droits actuelle du fichier test, en hexadécimal représenterait 644.
Maintenant, il existe des commandes plus "user friendly".
Dans notre cas, nous souhaitons donner le droit d'écrire dans notre fichier au groupe pi :
Code : Tout sélectionner
pi@raspberrypi /tmp $ ls -l test
-rw-r--r-- 1 pi pi 0 May 18 20:55 test
pi@raspberrypi /tmp $ chmod g+w test
pi@raspberrypi /tmp $ ls -l test
-rw-rw-r-- 1 pi pi 0 May 18 20:55 test
pi@raspberrypi /tmp $
Tout comme le "u" désigne l'utilisateur, le "o" désigne les autres, le "-" désigne le retrait de droit, le "r" désigne le droit de lire le fichier,
le "x" d'exécuter un fichier (exécutable) ou d'entrer dans un dossier (pour avoir la permission d'entrer dans un dossier, il faut pouvoir l'exécuter).
Bien entendu, tu trouvera des "tutos" mieux fait sur internet.
J'espère que ces informations t'aiderons.
Si tu as encore des question n'hésite pas.
Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Les droits utilisateurs
Maxty01,
Merci pour cette super explication de texte, c'est très clair. il va falloir que je manipule... ce qui amènera probablement d'autres questions du genre :
Ok, j'ai lu quelque part que PHP lancé les commandes sous le user www-data. Mais comment aurais-je pu le trouver seul ?
Bonne soirée (ou ce qu'il en reste)
PS : Tes exemples avec pi:pi fonctionnent-ils également avec fos:root ?
Merci pour cette super explication de texte, c'est très clair. il va falloir que je manipule... ce qui amènera probablement d'autres questions du genre :
Ok, j'ai lu quelque part que PHP lancé les commandes sous le user www-data. Mais comment aurais-je pu le trouver seul ?
Bonne soirée (ou ce qu'il en reste)
PS : Tes exemples avec pi:pi fonctionnent-ils également avec fos:root ?
Ph.
-
- Modérateur
- Messages : 790
- Enregistré le : dim. 16 nov. 2014 20:53
- Localisation : Charleroi - Belgique
Re: Les droits utilisateurs
Bonsoir,
En fait, il faut savoir que toutes commandes sont exécutées avec le nom de l'utilisateur qui la lance (attention, il existe des cas particulier, qui confirme la règles...).
Dans ton exemple, Apache2 est lancé sous le nom de www-data, apache exécute l’environnement qui interprète le langage PHP.
Les scripts PHP qui exécutent des commandes systèmes, le feront, par extension (et déduction), au nom de l'utilisateur de Apache2: www-data.
Mais il est possible de lancé des programmes avec des nom d'utilisateur particulier, le système, qui travaille sous le nom de root,
peut lancer des commandes sous users différents, Apache2 est, par exemple, lancé par le système,
mais le système à forcé l'exécution d'Apache2 sous le nom de www-data, par mesure de sécurité.
Bonne nuit,
Ps : fait moi un coup pareil et tu recevra ma main dans ta tête façon aller:retour !
En fait, il faut savoir que toutes commandes sont exécutées avec le nom de l'utilisateur qui la lance (attention, il existe des cas particulier, qui confirme la règles...).
Dans ton exemple, Apache2 est lancé sous le nom de www-data, apache exécute l’environnement qui interprète le langage PHP.
Les scripts PHP qui exécutent des commandes systèmes, le feront, par extension (et déduction), au nom de l'utilisateur de Apache2: www-data.
Mais il est possible de lancé des programmes avec des nom d'utilisateur particulier, le système, qui travaille sous le nom de root,
peut lancer des commandes sous users différents, Apache2 est, par exemple, lancé par le système,
mais le système à forcé l'exécution d'Apache2 sous le nom de www-data, par mesure de sécurité.
Bonne nuit,
Ps : fait moi un coup pareil et tu recevra ma main dans ta tête façon aller:retour !
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Les droits utilisateurs
Bonsoir Maxty01,
J'ai tout compris (enfin de crois) j'ajoute donc le [Resolu] qui va bien.
Encore merci.
J'ai tout compris (enfin de crois) j'ajoute donc le [Resolu] qui va bien.
Encore merci.
Ph.