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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
 
#!/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