[AIDE svp] utilisé exec( ) [Résolu]

Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
- - Dernière réponse : gaellius95
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
- 4 mai 2010 à 15:56
Bonjour à tous
voila j'ai un souci
j'ai un script shell qui doit prendre un paramètre que je souhaiterai dans une page php

mon script shell est : Ajout_User.sh nom_user

il permet de crée un dossier avec le nom du user de modifier les droits d'accès de se dossier de changer le propriétaire puis il crée un fichier de configuration vsftpd propre à l'utilisteur

j'utilise donc la commande php exec( )
en faisant

exec('sudo /root/script/Ajout_User.sh '.$login);

$login etant le nom que je récupère d'après mon formulaire et qui doit etre le parametre de mon script

lorsque je l'ai testé comme ca j'ai eu une page blanche et rien d'autre pas de création de fichier et

lorsque je l'ai testé avec l'exemple de la doc php net il m'affiche comme valeur retournée 1 soit une erreur mais je ne sais pas laquelle...

ca devient urgent c'est pour mon stage et je suis coincée

Je fais appel à vos connaissances et votre solidarité

Merci d'avance
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
3
Merci
voila j'ai trouvé la solution
tout résidait dans les fichus droits de Linux
mon script est utilisé par le user d'apache : nobody du coup il fallait jouait sur les droits rwx de other
en mettant les droits d'exécution de other le script à pu fonctionner en faite c'était tout bête

je met se topic comme résolu merci à ce qui m'ont aidés

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de gaellius95
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015
0
Merci
essaye plutot
passthru('sudo /root/script/Ajout_User.sh '.$login);
Commenter la réponse de devil_may_cry
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
0
Merci
fonctionne toujours pas et je ne sais pas pourquoi
Commenter la réponse de gaellius95
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015
0
Merci
que retourne le code normalement si il y'a un affichage quelconque dans ton script sh tu doit le voir dans ta page! et est-ce-que ton script sh marche en ligne de commande?
Commenter la réponse de devil_may_cry
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
0
Merci
le script sh en ligne de commande fonctionne
il me crée tout et m'affiche la page

par contre des que c'est inclu dans mon script php j'ai une page blanche
je ne reviens pas sur ma page
voici le script meme :
#!/bin/sh


#verifie que le nom d'utilisateur n'existe pas deja
if test -d /home/ftp/$nom
echo "l'utilisateur existe deja"
else
#creation du dossier perso avec les droits
mkdir /home/ftp/$1
chown -R ftp /home/ftp/$1
chmod -R 700 /home/ftp/$1

echo 'creation du dossier personnel reussi'
#creation du fichier de config vsftpd
echo "write_enable=Yes" > /etc/vsftpd/vsftpd_user_config/$1
echo "local_root=/home/ftp/$1" >> /etc/vsftpd/vsftpd_user_config/$1
echo "anon_uplaod_enable=YES" >> /etc/vsftpd/vsftpd_user_config/$1
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/vsftpd_user_config/$1
echo "anon_other_write_enable=YES" >> /etc/vsftpd/vsftpd_user_config/$1
echo "hide_file=(none)" >> /etc/vsftpd/vsftpd_user_config/$1
echo "force_dot_files=YES" >> /etc/vsftpd/vsftpd_user_config/$1

echo "creation du fichier de config personnel reussi"

echo "Utilisateur cree avec succes"
fi

exit


par contre je me demande une chose juste avant je fais une requete slq donc ouverture de bdd, puis fermeture a la fin est ce que ca joue ou pas?
Commenter la réponse de gaellius95
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
0
Merci
Bonjour,

le process Apache (httpd) a-t-il le droit d'utiliser la commande sudo, de meme pour php?

aussi bien tu as une erreur : "www-data (ou autres) Is not in the sudoers file", regarde dans les logs d'apache, ou dans les messages envoyés au root (mail dans l'invite de commande).

bonne journée
Commenter la réponse de cs_47
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015
0
Merci
essaye celui la je ne suis pas ous linux mais je l'ai tester pour appeler un script batch et ca marche
$command = escapeshellcmd ('sudo /root/script/Ajout_User.sh '.$login);

$output = shell_exec($command);
echo $output;
Commenter la réponse de devil_may_cry
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
0
Merci
je n'ai rien qui s'affiche meme pas le echo $output;
j'ai une page blanche a la page sans message sans rien
Commenter la réponse de gaellius95
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015
0
Merci
ceci peut etre du a la valuer de safe mode quel est la situation de ton safe_mode dans le php-ini si il est a on mais le a off
Commenter la réponse de devil_may_cry
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
0
Merci
tout le safe_mode est sur off
par contre est ce que ca viendrai pas du httpd.conf le probleme parce que l'utilisateur et le gpe c'est apache et que sous linux pour executé faut etre root

pourtant dans le sudoers j'ai
config nobody (c'est l'equivalent du www-data) ALL=(ALL) NOPASSWD: /root/script/*

donc je ne sais pas
Commenter la réponse de gaellius95