WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:hebergement:hebergement_externe:operations

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.

  • web_adduser permet l'ajout d'un utilisateur au serveur web qui sera configué comme il faut (ajoutez précédement l'utilisateur). Pour ajouter l'utilisateur plop, on tape la commande:
/usr/local/bin/web_auto_adduser.sh plop

Faites-le saisir et confirmer son mot de passe quand demandé…

  • web_info donne les informations sur les répertoires des utilisateurs (taille et nombre de fichiers). Si vous utilisez all, il retourne la taille de /home et le nombre de fichiers contenus. Usage pour plop :
/usr/local/bin/web_auto_info.sh plop

/bin/web_info all
  • web_delete permet la suppression de la configuration du site web d'un adhérent (le coupe) et sauvegarde son site dans une archive. Usage pour plop :
/usr/local/bin/web_auto_delete plop
  • web_newdomain.sh nom_adhérent extension répertoire_dans_son_www : Permet l'ajout d'extensions de nom de domaines pour un adhérent.

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

  • 1 : Installez sur le nouveau serveur les paquets proftpd apache2 php5 php-db et éventuellement certains parmi ceux-ci : libapache2-svn libapache2-mod-python libapache2-mod-ldap-userdir libapache2-webauth
  • 2 : Exécutez ce script en root sur le vieux serveur:
#!/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 :)

  • 3 : On ressort les informations des utilisateurs sur le serveur d'arrivée dans /new :
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
  • 4 : Extraction des /home
cd /

tar –zxvf /new/home.tar.gz

tar –zxvf /new/mail.tar.gz

  • 5 : Modification de la conf apache
cp -r /new/apache2 /etc/
  • 6 : On n'oublie pas d'extraire le contenu du site web ^^
tar -zxvf /new/www.tar.gz
  • 7 : Installez proftpd et configurez le pour que les utilisateurs soient captifs dans leurs homes.
  • 8 : Importez les scripts web_* qui se trouve dans /usr/local/bin dans le vieux serveur. Rendez les executables seuleument par root.
  • 9 : Pensez aussi à modifier l'adresse ip dans /var/www/imagine.minet.net/webMNG associée à webusers, sinon vous ne pourrez plus utiliser la superbe interface d'ajouts d'adhérents ;)
  • 10 : Et dernier point super important: rajoutez ces lignes en fin de /etc/sudoers, afin que l'utilisateur web puisse effectuer sans mot de passe les commandes de gestion des utilisateurs situés dans son /home :
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 !!!

wiki/hebergement/hebergement_externe/operations.txt · Dernière modification: 2020/06/27 18:16 (modification externe)