Table des matières

Opérations sur les hébergements

le 10 novembre 2014 :

FIXME 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.

Ajout d'un utilisateur

Utilisation de l'interface web

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.

Utilisation des scripts

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 .

Configuration manuelle

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

Comment migrer WebUser

#!/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 !!!