====== 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 [[wiki:hebergement:hebergement_externe:#creation|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 [[wiki:services:sqlhosting]], comme détaillé [[wiki:hebergement:phpmyadmin | 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 ServerAdmin webmaster@localhost ServerName toto.wwwusers.minet.net DocumentRoot /var/www/toto/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined 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 !!!