Connexion automatique
Un article de Mille-Xterm.
(Redirigé depuis Installation de l'auto-login des terminaux)
| Cet article contient des informations obsolètes concernant un service ou une application qui n'est plus à jour actuellement. Il est conservé comme archive de référence. |
Il est possible de permettre à certains terminaux de se s'authentifier automatiquement. Cela peut être très utile. Par exemple dans un café Internet ou pour faire des tests de charge.
Sommaire |
[modifier]
Activation de authentification automatique pour un terminal particulier
Nous n'avons pas encore appliquer de solution pour permetre à un nombre sélectif de s'authentifier automatiquement mais voici des idées de solutions possible :
Première solution :
- Installer une deuxième version de gdm avec un fichier gdm.conf différent sur les serveurs
- Exécuter un deuxième serveur X sur un port différent ??
- Paramétrer le port de connection XDMP au niveau de la config des terminaux
Deuxième solution :
- Utiliser des serveurs app différents pour un groupe de machine
- Mozilla comme display manager ..
[modifier]
Activation de authentification automatique pour tous les terminaux
- Installer Pam_Scripts Voir : Mise en fonction des script de login et de logout en activant le module dans /etc/pam.d/gdm
- Copier les scripts d'autologin dans le répertoire /var/autolog/ et ajouter le droit d'exécution sur ces derniers. Si vous m'avez pas les fichiers sources, vous pouvez les créer avec le Code source des scripts d'auto-logon
- Dans le fichier onsessionclose du répertoire /etc/security/ appellez le script mille-autologin.sh avec la commande suivante :
/var/autolog/mille-autologin.sh release $2 - Dans le fichier loginlist, inscrire la liste des comptes d'utilisateur disponible et/ou à créer pour l'auto-logon
- Au besion créer les comptes utilisateur qui se trouve dans la loginlist en exécutant le script setupautolog.sh
- Configurer GDM pour activer l'auto login. Il faut configurer le fichier gdm.conf qui se trouve dans le répertoire /etc/X11/gdm/ afin d'activer l'autologin et d'utliser les noms d'utilisateurs renvoyé par le script autologin.sh. Voici les lignes à modifier :
[daemon] TimedLoginEnable=true TimedLogin=/var/autolog/mille-autologin.sh next| # Le signe de pipe ( | ) rend la commande exécutable TimedLoginDelay=30 [security] AllowRemoteAutoLogin=true
- Si vous désirez effectuer des test de charge, vous pouvez ajouter un script qui appelle les scripts du test de charge à exécuter dans le répertoire d'exécution au démarrage des utilisateurs (/home/nom_du_user/.kde/Autostart) ou dans le skel (/etc/skel/.kde/Autostart) si vous utilisateurs ne sont pas créer...
Par exemple, vous pouvez l'appeller run.sh avec les droits d'exécution sur ce fichier. Le script peut contenir des lignes telque :
#!/bin/bash /Tests-GUI/loop.sh
[modifier]
Code source des scripts d'auto-logon
Voici la liste des fichiers utilisé par les scripts d'auto-login :
locks - Répertoire qui contient la liste des comptes (sous forme de fichier vide) actuelement utilisés
mille-autologin.sh - Script qui retourne un le nom d'usager d'un compte d'utilisateur disponible. Il peut avoir en premier paramètre :
* init - Supprime le répertoire locks
* next - Retourne un nom de compte d'utilisateur libre
* release + nom_d'utilisateur - Libère le nom de compte d'utilisateur utilisé en supprimant son fichier dans locks
loginlist - Fichier qui contient la liste des comptes d'utilisateur que l'auto-logon peut utiliser.
Le fichier est aussi utilisé par setupautolog.sh et par remautologuser.sh pour créer ou supprimer les compte en batch
setupautolog.sh - Script qui créer des comptes d'utilisateur qui sont dans la loginlist
remautologuser.sh - Script qui supprime les comptes d'utilisateur qui sont dans la loginlist
execbatch.sh - Est utilisé pour exécuter des opérations sur plusieurs comptes utilisateurs en mêmme temps (exemple supprimer un fichier)
[modifier]
Code source de mille-autologin.sh
#!/bin/bash # The script purpose is to return ltsp autologin attributes # It can be called from gdm.conf configuration files # To be copied in /usr/sbin # # Copyright 2005 , Commission scolaire de Laval # Stephane Bond, sbond@cslaval.qc.ca # Patrice Gauvin, pgauvin@cslaval.qc.ca # # # This file is part of the MILLE-XTERM distribution. # See the MILLE-XTERM (english) and the MILLE (french) project # # http://www.revolutionlinux.com/mille-xterm/ # http://www.mille.ca/ # # The MILLE-XTERM framework is covered by the GNU General Public License. See # the COPYING file in the top-level MILLE-XTERM directory. Software packages # that are included in the MILLE-XTERM distribution have their own licenses. # # Usage : # mille-autolog.sh init # Init locks # mille-autolog.sh user # Return login to use # mille-autolog.sh release username # Remove lock for the username # # ------------------------------------------------------------------------- CMD=${1:-"active"} LOCKSPATH=/var/autolog/locks LOGINLIST=/var/autolog/loginlist ACTIVE="false" function get_next_login() { for i in `cat $LOGINLIST` do if [ ! -e $LOCKSPATH/$i ] then NEXT_LOGIN=$i exec `cat /dev/null > $LOCKSPATH/$i` return 1 fi done return 0 } # Read lts.conf file MYXTERM_IP=`echo $DISPLAY | cut -f1 -d":"` if [ -r /tmp/lts.conf.$MYXTERM_IP ] ; then eval `getltscfg -a -c /tmp/lts.conf.$MYXTERM_IP` # We get MXT_AUTOLOG and MXT_AUTOLOGUSER if [ "$MXT_AUTOLOG" = "Y" ] ; then ACTIVE="TRUE" fi if [ -n $MXT_AUTOLOGUSER ] ; then AUTOLOGUSER=$MXT_AUTOLOGUSER fi fi # Process command if [ "$CMD" = "init" ] ; then # Initialize locks rm -f $LOCKSPATH/* elif [ "$CMD" = "active" ] ; then # Print active status echo "$ACTIVE" elif [ "$CMD" = "user" ] ; then # Return the login to use if [ "$ACTIVE" != "true" ] ; then # nothing echo "" elif [ "x$AUTOLOGUSER" != "x" ] ; then echo $AUTOLOGUSER else get_next_login echo $NEXT_LOGIN fi elif [ "$CMD" = "release" ] ; then # Remove lock rm -f $LOCKSPATH/$2 fi exit 0
[modifier]
Code source de setupautolog.sh
#/bin/bash GROUP_NAME="mxtusers" groupadd $GROUP_NAME for USER_NAME in `cat loginlist` do echo "Create user "$USER_NAME useradd -c $USER_NAME -g mxtusers -p \$1\$Suqgwz7M\$86VVisvfhmR\.4hEhrV1QV0 $USER_NAME done
[modifier]
Code source de remautologuser.sh
#/bin/bash for USER_NAME in `cat loginlist` do echo "Delete user "$USER_NAME userdel $USER_NAME rm -fR /home/$USER_NAME done
[modifier]
Code source de execbatch.sh
#/bin/bash for USER_NAME in `cat loginlist` do echo "Copie pour "$USER_NAME #cp -f /home/mxtuser01/.kde/Autostart/run.sh /home/$USER_NAME/.kde/Autostart/run.sh rm -fR /home/$USER_NAME/mxtuser01 cp -fR /home/mxtuser01/.kde /home/$USER_NAME/.kde cp -fR /home/mxtuser01/* /home/$USER_NAME/ cd /home/$USER_NAME chown -R $USER_NAME.mxtusers * done

