Messages : 151
Sujets : 10
Inscription : Apr 2014
Bonjour,
j'ai installé nginx, php et sqlite pour pouvoir faire mon site à moi

.
J'ai donc mon site pour le moment dans le répertoire
/usr/share/nginx/www/siteSchool/ et j'ai mis un répertoire db dans /usr/share
Quand j'ai fais mes tests d'utilisation de la database je me suis rendu compte que j'avais un pb de droit, je l'ai résolu en faisant un chmod 777 au répertoire db et j'aimerais affiner mais je n'ai pas compris comment trouver les droits spécifiques à php (d'ailleur est ce php ou nginx ?).
Comment est ce que je peux affiner les droits ?
Messages : 151
Sujets : 10
Inscription : Apr 2014
Apparemment c'est root qui lance nginx et php :
Code :
[== Indéfini ==]
[email protected] /usr/share $ ps -ef | grep nginx
root 2130 1 0 mai23 ? 00:00:00 nginx: master process /usr/sbin/nginx
[email protected] /usr/share/db $ ps -ef | grep php
root 11204 1 0 mai30 ? 00:00:46 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
C'est bien ou c'est mal ?
[edit]
et le rep db est créé par pat :
Code :
[== Indéfini ==]
[email protected] /usr/share $ ls -l
drwxrwxrwx 2 pat pat 4096 juin 3 15:26 db
donc faire un sudo chown root /usr/share/db devrait résoudre le pb, je vais essayer
(Modification du message : 05-06-2014, 08:56:23 par
finopat.)
Messages : 151
Sujets : 10
Inscription : Apr 2014
Par contre je n'arrive pas à faire de transfert sftp vers le répertoire db alors qu'il est encore en 777 propriétaire pat et que je suis connecté en ssh avec le login pat, je ne comprends pas pourquoi
Messages : 151
Sujets : 10
Inscription : Apr 2014
Citation :Par contre je n'arrive pas à faire de transfert sftp vers le répertoire db
pfff, en fait le fichier était ouvert en local sur le pc, quel boulet je fais
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
Fait attention en mettant ta DB en dehors du répertoire du serveur. Tu vas devoir ouvrir des droits (pour sortir de ce répertoire) ce qui peut être une porte ouverte pour accéder à d'autres répertoires et/ou commandes qu'en temps normal tu ne pourras pas faire
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 1,023
Sujets : 22
Inscription : Jun 2013
+1 avec Chris.
D'autre part, pour les droits, donne le fichier sqlite à www-data, lecture + écriture.
Messages : 151
Sujets : 10
Inscription : Apr 2014
Merci de vos réponses,
Chris quand tu dis que je vais devoir ouvrir des droits pour sortir du répertoire, tu penses au 777 que j'ai mis au rep /usr/share ? car c'est la seule modif que j'ai faite pour que cela fonctionne.
Jeoffrey a écrit :D'autre part, pour les droits, donne le fichier sqlite à www-data, lecture + écriture.
si je comprends bien, je laisse le rep db dans le repertoire du serveur, mais je ne donne les droits lecture/ecriture qu'à l'utilisateur www-data ? j'ai bon ?
il est créé automatiquement ce user ?
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
Le user www-data est celui qui est utilisé par ton serveur web. Il doit déjà exister (regarde dans le fichier /etc/passwd si tu as une entrée www-data)
Si tu ne changes pas la configuration Nginx et les droits UNIX, il ne pourra aller que dans le répertoire racine de ton site (/usr/share/nginx/www) et ses sous répertoires (dont siteSchool)
Pour éviter d'alléger cette sécurité, tu déposes ton fichier SQLite dans le répertoire racine (/usr/share/nginx/www) ou dans un de ses sous répertoires (par exemple siteSchool). Comme ca ton serveur (les processus Nginx) n'a pas besoin d'aller voir ailleurs que là où il a le droit.
Ensuite tu positionnes les droits UNIX de ton fichier base de données pour que seul www-data puisse le lire et y écrire. Tu feras donc un chown pour que le propriétaire soit www-data (si ce n'est pas déjà le cas) et ensuite un chmod 600 pour que www-data puisse lire (4) et écrire (2). Pas besoin de le rendre exécutable, ca ne sert à rien.
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 151
Sujets : 10
Inscription : Apr 2014
chris57100 a écrit :Le user www-data est celui qui est utilisé par ton serveur web. Il doit déjà exister (regarde dans le fichier /etc/passwd si tu as une entrée www-data)
effectivement il existe

je ne savais pas que c'était cet utilisateur qu'utilisait le serveur, merci !
J'ai donc déplacé le répertoire dans le rep du serveur, puis j'ai modifié le propriétaire + le groupe pour que ce soit www-data, j'ai donc maintenant cela :
Code :
[== Indéfini ==]
[email protected] /usr/share/nginx/www/siteSchool $ ls -l
total 64
drw-rw---- 2 www-data www-data 4096 juin 5 13:56 db
et j'ai ajouté le user pat dans le groupe www-data :
Code :
[== Indéfini ==]
[email protected] /usr/share/nginx/www/siteSchool $ sudo adduser pat www-data
Ajout de l'utilisateur « pat » au groupe « www-data »...
Ajout de l'utilisateur pat au groupe www-data
Fait.
mais quand je suis connecté en pat je n'arrive pas à accéder au répertoire db :
Code :
[== Indéfini ==]
[email protected] /usr/share/nginx/www/siteSchool $ cd db
-bash: cd: db: Permission non accordée
[email protected] /usr/share/nginx/www/siteSchool $
je ne trouve pas ce que j'ai loupé ?
Messages : 151
Sujets : 10
Inscription : Apr 2014
D'ailleurs cela ne fonctionne pas non plus avec ma page php :
Code :
[== Indéfini ==]
SQLSTATE[HY000] [14] unable to open database file
Messages : 228
Sujets : 12
Inscription : Feb 2014
Bonjour,
les directories doivent obligatoirement avoir des droits d'éxecution :
Code :
sudo chmod +X /usr/share/nginx/www/siteSchool
Messages : 151
Sujets : 10
Inscription : Apr 2014
merci gambit cela fonctionne mais je ne comprends pas pourquoi ??
j'avais compris que le x ne servait que pour exécuter mais apparemment ce n'est pas le cas.
si je mets les droits du rep à rw pour le groupe www-data je n'accède pas au rep, si je rajoute le droit d'éxécution je peux y accéder.
Code :
[== Indéfini ==]
[email protected] /usr/share/nginx/www/siteSchool $ sudo chmod g-x db
[email protected] /usr/share/nginx/www/siteSchool $ cd db
-bash: cd: db: Permission non accordée
[email protected] /usr/share/nginx/www/siteSchool $ ls -l
total 68
drwxrw---- 2 www-data www-data 4096 juin 5 13:56 db
[email protected] /usr/share/nginx/www/siteSchool $ sudo chmod g+x db
[email protected] /usr/share/nginx/www/siteSchool $ cd db
Messages : 151
Sujets : 10
Inscription : Apr 2014
bon apparemment c'est comme cela pour les répertoires, pas de x, pas le droit d'y aller
Messages : 228
Sujets : 12
Inscription : Feb 2014
Pour les répertoires, x = droit d'accès = droit de passer à travers = droit d’exécuter ./ ou ../ .
Messages : 151
Sujets : 10
Inscription : Apr 2014
Cela fait partie des choses à savoir, je ne l'oublierai plus maintenant lol.