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

Signaler
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
-
gaellius95
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010
-
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

Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010

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
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

essaye plutot
passthru('sudo /root/script/Ajout_User.sh '.$login);
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010

fonctionne toujours pas et je ne sais pas pourquoi
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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?
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010

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?
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
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
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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;
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010

je n'ai rien qui s'affiche meme pas le echo $output;
j'ai une page blanche a la page sans message sans rien
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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
Messages postés
19
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 mai 2010

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