Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 09/11/2008, 16h17   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: novembre 2007
Messages: 32
Par défaut problème apache via script shell

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
donc comme je le dit plus haut tout ce passe excepté tout s'install correctement, le répertoire /home/utilisateur est belle et bien créer et accessible via un client ftp, la base de données et tout le nécessaire fonctionne parfaitement en revanche http://mon_ip/~utilisateur m'affiche l'erreur 404 : The requested URL /~utilisateur was not found on this server.
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 03h29   #2 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: octobre 2008
Messages: 21
Par défaut

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.
mcoolive est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 11h53   #3 (permalink)
Membre éprouvé
 
Avatar de alexp
 
Date d'inscription: janvier 2006
Âge: 25
Messages: 425
Envoyer un message via MSN à alexp
Par défaut

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
alexp est déconnecté   Envoyer un message privé Réponse avec citation
NEWS LINUX PROFESSIONNELFAQ LINUXTUTORIELS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHE

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 02h30.