Aller au contenu

mkdir()


Siddartha

Sujets conseillés

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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é par nalrem
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...