Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Droit répertoire database sqlite
#1

Bonjour,
j'ai installé nginx, php et sqlite pour pouvoir faire mon site à moi Wink .
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 ?
Répondre
#2

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 ? Tongue

[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
Répondre
#3

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 Sad
Répondre
#4

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 Rolleyes
Répondre
#5

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
Répondre
#6

+1 avec Chris.

D'autre part, pour les droits, donne le fichier sqlite à www-data, lecture + écriture.
Répondre
#7

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 ?
Répondre
#8

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
Répondre
#9

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 Wink 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é ?
Répondre
#10

D'ailleurs cela ne fonctionne pas non plus avec ma page php :
Code :
[== Indéfini ==]
SQLSTATE[HY000] [14] unable to open database file
Répondre
#11

Bonjour,

les directories doivent obligatoirement avoir des droits d'éxecution :

Code :
sudo chmod +X /usr/share/nginx/www/siteSchool

Cool
Répondre
#12

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
Répondre
#13

bon apparemment c'est comme cela pour les répertoires, pas de x, pas le droit d'y aller Tongue
Répondre
#14

Pour les répertoires, x = droit d'accès = droit de passer à travers = droit d’exécuter ./ ou ../ .

Cool
Répondre
#15

Cela fait partie des choses à savoir, je ne l'oublierai plus maintenant lol.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)