Lancer script sh avc argument grace a php svp

Fermé
Utilisateur anonyme - 4 déc. 2008 à 20:56
 Jipi's - 27 nov. 2009 à 10:45
Bonjour,

je crée actuellement un serveur d'hébergement web pour mon projet de fin d'année de BTS IG Reseau.
Le but de mon projet et d'automatiser la création de compte web pour mes clients.

Pour cela j'ai installer un serveur Apache que j'ai configurer de façon a ce que chaque personnes aient un dossier dans le /home/utilisateurs/public_html pour pouvoir stocker leurs page web. Chaque Php est renfermer dans leur dossier ce qui permet de garder une haute sécurité.

Maintenant j'en suis à la création de mon interface web afin que mes utilisateurs puissent ce créer un compte.
La programmation du formulaire est plutôt basic et donc simple à réaliser le souci arrive au moment de lancer mon scripte pour créer mes dossiers pour mon utilisateur. je dit bien dossier car je ne créer pas d'utilisateur système ...

woici mon scripte ajouter.sh qui permet d'ajouter un utilisateurs
///////////////////////////////////////// DEBUT DU SCRIPT AJOUTER.SH ///////////////////////////////////////////////
#!/bin/sh

# Informations à compléter
pass_mysql_ftp=ftp
pass_mysql_root=admin
# On vérifie qu'il n'existe pas déjà un autre utilisateur du même nom
if test -d /home/$1 ; then
echo "L'utilisateur existe deja"
else
# On crée les dossiers et on fixe les droits
mkdir /home/$1
mkdir /home/$1/public_html
chown -R www-data.www-data /home/$1
chmod -R 700 /home/$1

# On crée le fichier de configuration pour vsFTPd
echo "anon_world_readable_only=NO" >> /etc/vsftpd/$1
echo "local_root=/home/$1" >> /etc/vsftpd/$1
echo "write_enable=YES" >> /etc/vsftpd/$1
echo "anon_upload_enable=YES" >> /etc/vsftpd/$1
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$1
echo "anon_other_write_enable=YES" >> /etc/vsftpd/$1
echo "hide_file=(none)" >> /etc/vsftpd/$1
echo "force_dot_files=YES" >> /etc/vsftpd/$1

# On ajoute l'utilisateur dans la base de données
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$1', ENCRYPT( '$1' ));"

# On crée une base de données où l'utilisateur est tout-puissant
mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$1'@'localhost' IDENTIFIED BY '$1';GRANT USAGE ON *.* TO '$1'@'localhost' IDENTIFIED BY '$1' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS $1;GRANT ALL PRIVILEGES ON $1.* TO '$1'@'localhost';"

echo "Utilisateur ajoute avec succes"
fi

////////////////////////////////////////////////////////// FIN DU SCRIPT AJOUTER.SH ////////////////////////////////////

Ce scripte fonctionne parfaitement en le lance sur mon serveur /var/www/scripts/ajouter.sh en sudo

Maintenant j'aimerais pouvoir passer en argument sur ma page web php. ajouter_utilisateur.php
le nom et mot de passe de mes clients pour que mon server créer leurs dossier personnel

$nom=$_POST['nom'];
$password=$_POST['password'];
system('/var/www/scripts/ajout.sh'.escapeshellarg($nom).escapeshellarg($password));

Voici ce que j'ai commencer a coder sur ma page web

Mais cela ne marche pas ....

Comment appeler un scripte sh en lui passant des paramètres et en activant le compte root pour la modification des droits sur les fichiers.

Merci de votre aide ;)
A voir également:

2 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
5 déc. 2008 à 10:15
Déjà il manque des espaces pour séparer les arguments entre eux et avec le nom du script.

Ensuite ce n'est pas une bonne idée de faire tourner ton script en tant que root, tu ferais mieux de donner les droit sur le répertoire parent à www-data et les dossiers seront créé par le script avec ce owner (puisqu'il sera lancé par cet utilisateur).
0
Salut,

Est-ce que tu as trouvé une solution à ton problème ? Car actuellement j'ai le meme...

Merci d'avance.
0