le 10 novembre 2014 :
La gestion des espaces d’hébergement n'est pas adaptée à la situation, si la solution actuelle fonctionne, elle est loin d'être facile à prendre en main.
Il serait bon de refaire le système en place.
L'utilisation de l'interface web permettant de gérer les comptes des utilisateurs hébergés chez MiNET est expliquée ici.
Ce site exécute des commandes via ssh directement sur webusers.
Des scripts ont été écrits dans /usr/local/bin afin de permettre à un utilisateur root de configurer ou déconfigurer des comptes d'utilisateur.
/usr/local/bin/web_auto_adduser.sh plop
Faites-le saisir et confirmer son mot de passe quand demandé…
/usr/local/bin/web_auto_info.sh plop /bin/web_info all
/usr/local/bin/web_auto_delete plop
Pensez aussi à lui ajouter un compte phpmyadmin sur sqlhosting, comme détaillé ici .
Alternative au script web_adduser…
Commencez par créer un compte qui ne peut faire que du FTP. Ca donne par exemple pour toto :
adduser --shell /usr/sbin/proftpd toto
Et faites le saisir ses informations.
Dans son home, créez un répertoire www et lui rendre les droits dessus… et créez un lien symbolique dans /var/www vers son fichier www de son répertoire personnel.
Par exemple pour l'ajout de l'utilisateur toto:
mkdir /home/toto/www chown toto /home/toto/www cd /var/www ln -s /home/toto/www toto
Ca y est le site est accessible :)
Il peut désormais utiliser le FTP pour modifier le contenu de son site.
Il faut encore que toto.wwwusers.minet.net pointe vers son dossier. Pour cela nous allons lui créer un virtual host :
Créez le fichier toto.wwwusers.minet.net dans /etc/apache2/sites-available
Il contiendra :
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName toto.wwwusers.minet.net DocumentRoot /var/www/toto/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/toto/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Et on fait un lien symbolique de /etc/apache2/sites-enabled vers /etc/apache2/sites-available, ce qui nous donne pour notre exemple :
cd /etc/apache2/sites-enabled ln -s ../sites-available/toto.wwwusers.minet.net
Il ne reste plus qu'à lui créer une base dans phpmyadmin sur sqlhosting
#!/bin/bash mkdir /migrate cd /migrate tar -cvzfp home.tar.gz /home tar -cvfzp mail.tar.gz /var/spool/mail tar -cvfzp www.tar.gz /var/www cp -r /etc/apache2 . rm -r apache2/mods-available/ apache2/mods-enabled/ export UGIDLIMIT=500 awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354)' /etc/passwd > /migrate/passwd.old awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354)' /etc/group > /migrate/group.old awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354) {print $1}' /etc/passwd | tee - | egrep -f - /etc/shadow > /migrate/shadow.old cp /etc/gshadow /migrate/gshadow.old
Il permet de récupérer la liste des utilisateurs et toutes leurs infos, leurs /home, leurs mails, le contenu de /var/www, et la configuration apache.
Il reste à transférer tout ceci sur le serveur de destination :)
cd /new cat passwd.old >> /etc/passwd # attention aux utilisateurs redondants !!! cat group.old >> /etc/group # de même cat shadow.old >> /etc/shadow cp gshadow.old /etc/gshadow chmod 0400 /etc/gshadow chown root:root /etc/gshadow
cd / tar –zxvf /new/home.tar.gz tar –zxvf /new/mail.tar.gz
cp -r /new/apache2 /etc/
tar -zxvf /new/www.tar.gz
Cmnd_Alias WEBMNG = /home/web/mod_pass.sh, /home/web/web_auto_add_user.sh, /home/web/web_auto_delete.sh, /home/web/web_auto_info.sh, /home/web/web_auto_newdomain.sh, /home/web/web_info.sh web ALL=(ALL) NOPASSWD: WEBMNG
Et voilà, théoriquement ça doit marcher… Sinon bonne chance !!!