[AIDE svp] utilisé exec( )

Résolu
gaellius95 Messages postés 19 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 12 mai 2010 - 4 mai 2010 à 09:58
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

10 réponses

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
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
3
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
4 mai 2010 à 10:24
essaye plutot
passthru('sudo /root/script/Ajout_User.sh '.$login);
0
gaellius95 Messages postés 19 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 12 mai 2010
4 mai 2010 à 11:12
fonctionne toujours pas et je ne sais pas pourquoi
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
4 mai 2010 à 11:15
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gaellius95 Messages postés 19 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 12 mai 2010
4 mai 2010 à 11:30
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?
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
4 mai 2010 à 11:42
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
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
4 mai 2010 à 11:47
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;
0
gaellius95 Messages postés 19 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 12 mai 2010
4 mai 2010 à 11:54
je n'ai rien qui s'affiche meme pas le echo $output;
j'ai une page blanche a la page sans message sans rien
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
4 mai 2010 à 12:04
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
0
gaellius95 Messages postés 19 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 12 mai 2010
4 mai 2010 à 12:16
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
0
Rejoignez-nous