Siddartha Posté 3 Avril 2005 Posté 3 Avril 2005 Bonsoir, Je viens de réaliser un petit script de test pour créer des répertoires via un script et des commandes shell : <?system(ls);mkdir("test",0700);system(ls);?>ou<?system(ls);mkdir("/home/user/www/test",0700);system(ls);?> Dans les deux cas, j'ai droit à un : Warning: mkdir(/home/user/www/test): Permission denied in /home/user/www/start.php on line 11 Apparemment, mon script n'a pas le droit de créer un répertoire alors que le "ls" lui est autorisé. Je suppose que start.php (le nom du script exécuté) tourne en user Apache (nobody) et non en 'user' du compte. Que faut il que je fasse pour que ce script exécute bien les commandes ? Ca semble illogique et surtout trés dangereux d'étendre les droits de 'nobody' à la création de rep mais existe il un moyen d'insérer dans mon script le bon user ? De manière générale, comme puis je faire pour faire tourner mon script avec le bon user ?
Dan Posté 3 Avril 2005 Posté 3 Avril 2005 Salut Sid, Tu ne peux pas changer le user de l'intérieur du script... donc la seule manière de permettre la création d'un répertoire est de changer les permissions du répertoire conteneur (chmod 777 /home/user/www/). Une fois fait, ton script pourra donc écrire dans ce répertoire et créer un fichier et/ou répertoire. Une autre manière serait d'exécuter Php en cgi et non en module Apache. Il pourrait de ce fait prendre le "user id" du compte s'il tourne avec suexec. C'est ce que font la majorité des hébergeurs pour les hébergements mutualisés. Dan
Siddartha Posté 3 Avril 2005 Auteur Posté 3 Avril 2005 Génial Dan ca marche Je viens de chmod tout mon rep /www/ et le script a bien crée le rep et les fichiers ! Par contre, les rep et fichiers créer au lieu d'avoir un chown : login:users ont un chown : nobody: nogroup Est ce que cela ne va pas poser un quelconque problème de sécurité ou d'accès ? (ces fichiers vont devoir se connecter via le login:user à une base mysql aprés)
Anonymus Posté 3 Avril 2005 Posté 3 Avril 2005 Non, les permissions sur les fichiers et les connexions mysql n'ont rien à voir. Tu peux toujours changer les chmod sur un fichier ou un répertoire, via les fonctions php : chmod, chgrp, chown.
nalrem Posté 3 Avril 2005 Posté 3 Avril 2005 (modifié) Et si tu fais ta création de répertoire dans un répertoire qui a les droits nécessaires ? edit : je ne sais pourquoi, je n'avais vu aucune réponses... donc mon post tombe un peu à plat. Désolé. Modifié 3 Avril 2005 par nalrem
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant