sudo chown avec PHP exec ne fontionne pas
Bonjour à tous, débutant sous linux et php
j'ai créer un système de création de comptes mails sur mon serveur debian.
Lorsqu'un utilisateur rempli un formulaire, le script php doit executer un :
Code:
1 2 3 4 5
| <?php
exec('maildirmake /home/vmail/'.$data.'@mondomaine.com/');
exec('sudo chown -R 5000 www-data /var/spool/vmail/'.$mail.'/');
exec('sudo chgrp -R 5000 www-data /var/spool/vmail/'.$mail.'/');
?> |
Cependant, l'utilisation de sudo posait apparement un problème pour l'utilisateur et cela ne marche pas.
J'ai donc créer un fichier createaccount.sh dans /var/createaccount.sh qui contient :
Code:
1 2 3 4 5 6 7
| #!/bin/sh
/usr/bin/maildirmake /var/spool/vmail/mondomaine.com/$data
/usr/bin/maildirmake /var/spool/vmail/$data@mondomaine.com
/bin/chown -R 5000 /var/spool/vmail/$data@mondomaine.com/
/bin/chgrp -R 5000 /var/spool/vmail/$data@mondomaine.com/
/bin/chown -R 5000 /var/spool/vmail/mondomaine.com/$data/
/bin/chgrp -R 5000 /var/spool/vmail/mondomaine.com/$data/ |
Puis dans mon code php j'ai mis:
Code:
1 2 3
| <?php
// PHP :
exec('sudo www-data /var/createaccount.sh ' . $data . ' ' . $mail); |
Mon fichier sudoers contient bien :
Code:
1 2
|
www-data ALL=(ALL) NOPASSWD: /var/createaccount.sh |
Depuis la page web de creation de compte, apres envoi du formulaire, rien ne marche.
Par contre, lorsque j'execute sous ssh directement mon fichier createaccount.sh (en ayant modifié les $data par le vrai utilisateur) et bien cela crée bien les dossier pour les mails.
Quelqu'un aurait-il une piste ?
Ai-je fait "boulette" quelque part ?
Ou alors ai-je loupé une étape ?
Merci par avance.