![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Shell Vos questions sur l'utilisation des commandes shell |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: novembre 2007
Messages: 32
|
Bonjour tout le monde,
j'ai créer un petit script qui me permettrait d'ajouter et supprimer des utilisateur Toute les étape de ce script sont fonctionnel hormis 1, apache2 en faite l'accès à son espace d'hébergement /home/utilisateur/public_html/ n'est pas accessible depuis le net Pour exécuter ce script je fait comme suite : # sh mainUser.sh add login passw et voici le script Code :
#!/bin/bash
# Vérification du nombre d'argument
if [ $# -ne 3 ]; then
echo "Erreur, le script a besoin d'arguments multiple"
exit;
else
echo "...";
fi;
# ---------------------------------------------------------------------------- #
# Récupération des arguments
action=$1
nom=$2
pass=$3
# ---------------------------------------------------------------------------- #
# Définition des divers variables
rep="/home/$nom/"
pass_mysql_root="monpassmysqlroot"
# ---------------------------------------------------------------------------- #
# Ajouter un utilisateur
vps_user_add () (
echo "Creation du compte en cours..."
if test -d /home/$nom ; then
echo "L'utilisateur existe deja"
exit;
else
# ------ WEB
# On crée les dossiers et on fixe les droits
mkdir /home/$nom
mkdir /home/$nom/public_html
echo " <h1>Nouvel espace web crée</h1> " > /home/$nom/public_html/index.html
mkdir /home/$nom/logs
mkdir /home/$nom/game
echo "" > /home/$nom/logs/access.log
echo "" > /home/$nom/logs/error.log
# On ajoute l'user au groupe www-data
useradd -g www-data -m utilisateur
# On chmod le répertoire et sous répertoire
chmod -R 755 /home/$nom
echo "Espace d'hebergement web cree ..."
# On crée sont virtualhost
echo "<VirtualHost *>
ServerAdmin postmaster@$nom.com
ServerName localhost
ServerAlias $nom.com *.$nom.com
DocumentRoot /home/$nom/public_html/
<Directory /home/$nom/public_html/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
ErrorLog /home/$nom/logs/error.log
LogLevel warn
CustomLog /home/$nom/logs/access.log combined
ServerSignature Off
</VirtualHost>
" >> /etc/apache2/sites-available/$nom.com
ln -s /etc/apache2/sites-available/$nom.com /etc/apache2/sites-enabled/$nom.com
# ------- VSFTPD
# on ajoute l'utilisateur et son mdp
rm -Rf /etc/vsftpd/login.db
echo "$nom
$pass" >> /etc/vsftpd/login.txt
# On mets a jour la base berkeley
db3_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
# On ajoute les paramètre pour notre nouveau site
echo "anon_world_readable_only=NO
local_root=/home/$nom
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES" > /etc/vsftpd/vsftpd_user_conf/$nom
echo "Compte FTP crée ..."
# ------- MYSQL
# On crée une base de données où l'utilisateur est tout-puissant
mysql -u root -p$pass_mysql_root -e "CREATE DATABASE IF NOT EXISTS $nom;"
echo "Base de donnees cree ..."
mysql -u root -p$pass_mysql_root -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';"
echo "Utilisateur MySQL cree ..."
mysql -u root -p$pass_mysql_root -e "GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
echo "Definition des limite ..."
mysql -u root -p$pass_mysql_root -e "GRANT ALL PRIVILEGES ON $nom.* TO '$nom'@'localhost';"
echo "Privilege associés ..."
# --------- Serveur games
# On copie le répertoire game par défaut
cp -R /home/serveur/CZ/base_war_cz/* /home/$nom/game/
echo "Le jeux est installer ...."
# Faut maintenant configurer le serveur en question
# Et créer le script restart....
# -------- Reste le serveur TS
mkdir /home/tsclients/$nom
cp -R /home/ts/tss2_rc2/* /home/tsclients/$nom/
echo "Le ts est installer ..."
echo "La creation a ete effectuee"
exit;
fi
)
# ---------------------------------------------------------------------------- #
# Supprimer un utilisateur
vps_user_del () (
# On vérifie qu'il existe
if test -d /home/$nom ; then
# ------- MYSQL
# On supprime son compte et sa base de donnée MySQL
mysql -u root -p$pass_mysql_root -e "DROP USER $nom@'localhost';"
echo "Utilisateur MySQL $nom ... : Supprimé"
mysql -u root -p$pass_mysql_root -e "DROP DATABASE IF EXISTS $nom;"
echo "Base de données $nom ... : Supprimée"
# ------- VSFTPD
# On supprime son fichier de configuration vsFTPd
rm -f /etc/vsftpd/vsftpd_user_conf/$nom
echo "Compte FTP ... : Supprimé"
# ------- WEB
# On supprime son dossier
rm -rf /home/$nom
rm -f /etc/apache2/sites-available/$nom.com
rm -f /etc/apache2/sites-enabled/$nom.com
echo "Fichier et dossier de $nom ... : Supprimé"
# ------- TS
# On supprime son répertoire ts
rm -rf /home/tsclients/$nom
echo "Serveur TS supprimer"
else
echo "L'utilisateur n'existe pas"
fi
)
case $action in
add)
vps_user_add
;;
del)
vps_user_del
;;
*)
cat << EOI
usage: $0 [add|del]
EOI
esac
le virtualhost est bien créer ainsi que le lien symbolique Si quelqu'un pouvait m'aider à résoudre ce problème je lui en serait reconnaissant d'avance merci splifferwolf |
|
|
|
|
|
#2 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: octobre 2008
Messages: 21
|
Ma première idée était un problème de droit, mais ça n'a pas l'air d'être ça.
Je ne l'ai jamais fait, alors je rate sûrement quelque chose, mais je devine que le serveur WEB ne devine pas tout seul qu'il faut "traduire" les requêtes /~toto en /home/toto/public_html. Un petit grep -R "public_html" sur les répertoires de configuration du serveur web pourrait te donner des idées. |
|
|
|
|
|
#3 (permalink) |
|
Membre éprouvé
![]() |
si tu crées un nouveau virtualhost à chaque ajout d'utilisateur, il faut que ton script redémarre apache.
Au préalable, il faut que tu active la prise en charge des "pages perso" des utilisateurs. http://giminik.developpez.com/articles/apache/debian/
__________________
Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org Tout est possible, tout est réalisable, le tout étant de savoir comment faire astuces pc gull villefranche |
|
|
|
|
![]() |
![]() |
||
problème apache via script shell
|
||
| Outils de la discussion | |
|
|