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/<serveur>/... 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