= Comment configurer un poste client public (sous Xenial) = Nous allons décrire ici une méthode très manuel en attendant la mise en place des procédures et outils de déploiement automatisés des postes clients publics. == Contexte == * Il n'y a plus de NFS pour les abonnés * Aucun sauvegarde des données des abonnés (= homedir volatile) * On garde l'authentification centralisée == 1- Installer Xenial sur le poste == Comme vous voulez : clé usb, cdrom, pxe ... == 2- Ajouter la source apt.auf.org == {{{ root@cnfp10:~# echo "deb http://apt.auf.org/ xenial auf " >> /etc/apt/sources.list.d/auf.list root@cnfp10:~# aptitude update root@cnfp10:~# aptitude install auf-keyring }}} == 3- Installer les logiciels standards == * On va d'abord chercher le miroir le plus rapide pour nous {{{ root@cnfp10:~# /etc/apt/sources.list /etc/apt/sources.list-FRIGO root@cnfp10:~# cat > /etc/apt/sources.list << __EOF__ deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse deb http://archive.canonical.com/ubuntu xenial partner __EOF__ root@cnfp10:~# aptitude update }}} * via le paquet auf-client-public {{{ root@cnfp10:~# aptitude install libavcodec-ffmpeg-extra56 ==> répondre Y partout root@cnfp10:~# aptitude install adobe-flashplugin ==> répondre Y partout root@cnfp10:~# aptitude install auf-client-public }}} == 4- Configuration de l'authentification centralisée == * Installer les paquets nécessaires {{{ root@cnfp10:~# aptitude install mysql-common root@cnfp10:~# wget http://apt.auf.org/pool/auf/m/mysql-5.1/libmysqlclient16_5.1.73-1_amd64.deb root@cnfp10:~# wget http://apt.auf.org/pool/auf/libn/libnss-mysql-bg/libnss-mysql-bg_1.5-2_amd64.deb root@cnfp10:~# dpkg -i libmysqlclient16_5.1.73-1_amd64.deb root@cnfp10:~# dpkg -i libnss-mysql-bg_1.5-2_amd64.deb }}} * Configurer les connecteurs mysql {{{ root@cnfp10:~# vi /etc/libnss-mysql-root.cfg root@cnfp10:~# vi /etc/libnss-mysql.cfg ### Récupérer les paramètres à mettre en consultant les mêmes fichiers sur une ancienne machine }}} * Activer la résolution via mysql {{{ root@cnfp10:~# sed -i -e "s/compas/file mysql/" /etc/nsswitch.conf }}} * Vérification {{{ root@cnfp10:~# getent passwd ... devrait donner la liste de tous les comptes abonnés }}} == 5- Gestion des homedir == * Créer le script auf-mkhomedir {{{ root@cnfp10:~# cat > /usr/sbin/auf-mkhomedir << __EOF__ #!/bin/bash # Ce script est executé lors de la connexion d'un utilisateur # (exactement, lors du lancement de la session) # Il vérifie si l'utilisateur dispose d'un répertoire de connexion. # Si ce n'est pas le cas, il demande au serveur de créer ce répertoire. # # Note : il faut qu'un service soit présent sur le serveur qui écoute # ---- les demandes de création des postes clients. Voir # /usr/share/doc/auf-client-fixe/README.auf-mkhomedir # # Note : ce script est exécuté via PAM. Pour l'activer, la ligne suivante # ---- doit être présente dans /etc/pam.d/common-session: # session optionnal pam_exec.so /usr/sbin/auf-mkhomedir # (le paquet auf-client-fixe ajoute automatiquement cette ligne) if [ -z "$PAM_USER" ] then echo "variable PAM_USER vide" logger -t $0 -i -p auth.error "variable PAM_USER vide" exit 10 fi # protection parano : on nettoie la variable PAM_USER LOGIN=`echo $PAM_USER | tr -dc A-Za-z0-9_.@-` # si le compte n'existe pas : on sort if ! id ${LOGIN} > /dev/null then logger -t $0 -i -p auth.info "login <${LOGIN}> introuvable" exit 11 fi # on cherche le homedir du compte HOMEDIR=`getent passwd ${LOGIN} | cut -d: -f6` # si le répertoire existe, on s'arrete là test -e ${HOMEDIR} && exit 0 # sinon, on va créer le répertoire... # configuration du système... DEFAULTSERVER=nfs TIMEOUT=20 PORT=10 if [ -r /etc/default/auf-mkhomedir ] then . /etc/default/auf-mkhomedir fi # si le homedir correspond à un lien symbolique, on le suit avec readlink # (exemple : /home/thomas -> /net/nfs.refer.sn/home/thomas) REAL_HOMEDIR=`readlink -f ${HOMEDIR}` if expr "$REAL_HOMEDIR" : "^/net/" then # si on est sur /net, il faut envoyer la commande au serveur indiqué # dans la seconde partie du nom SERVEUR=`echo ${REAL_HOMEDIR} | cut -f3 -d/` else # sinon, on envoie au serveur par défaut SERVEUR=${DEFAULTSERVER} fi # # on envoie la demande de création au serveur # echo "mkdir ${LOGIN}" | nc -w ${TIMEOUT} ${SERVEUR} ${PORT} __EOF__ }}} * Personaliser les paramètres {{{ root@cnfp10:~# cat > /etc/default/auf-mkhomedir << __EOF__ # configuration de auf-mkhomedir # Serveur a contacter quand le répertoire n'est pas de la # forme /net//... DEFAULTSERVER=nfs # port de connexion PORT=10 # Temps d'attente d'une réponse du serveur (en secondes) TIMEOUT=20 __EOF__ }}} * Activer le script {{{ root@cnfp10:~# echo "session optional pam_exec.so /usr/sbin/auf-mkhomedir" >> /etc/pam.d/common-session root@cnfp10:~# echo "session required pam_mkhomedir.so umask=0022 skel=/etc/skel" >> /etc/pam.d/common-session }}} ----