{{ :linux:message_logout_cybersalle.zip |}} ====== Configuration du gestionnaire de connexion LightDM ====== ==== Changer le moteur de theme lightdm ==== **/etc/lightdm/lightdm.conf*** [Seat:*] greeter-session=lightdm-gtk-greeter ==== Activer la session guest ==== **/etc/lightdm/lightdm-gtk-greeter.conf*** [SeatDefaults] allowguest=true autologin-guest=true greeter-setup-script=/usr/bin/numlockx on ==== Créer une session de configuration guest ==== * Créer une session d'utilisateur par exemple **guest_config** pour configurer graphiquement un certain nombre de programmes * Créer le dossier **/etc/guest-session** si non présent sudo mkdir /etc/guest-session * Créer le lien **/etc/guest-session/skel** vers **/home/gest_config** sudo ln -s /home/guest_config /etc/guest-session/skel ==== Cacher des utilisateurs (LightDm) ==== **/etc/lightdm/users.conf** Créer un fichier portant le nom de l'utilisateur à cacher XXX **/var/lib/AccountsService/users/XXX** et y mettre le code suivant [User] SystemAccount=true Cacher notamment les comptes administrateurs et de configuration de session invité ( **/var/lib/AccountsService/users/guest_config** ) ==== Nettoyage post-session ==== **/etc/lightdm/lightdm.conf** [SeatDefaults] session-setup-script = Script to run when starting a user session (runs as root) session-cleanup-script = Script to run when quitting a user session (runs as root) - Nettoyage de la file d'impression (éviter le lancement d'impressions intempestives) - lprm - #!/bin/bash for d in `lpq -a | sed -n '2,$'p | sed -e 's/ \s*/,/g' | cut -d, -f 3` do lprm $d done cancel -a #!/bin/bash # # Script de Nettoyage de fin de session # # - Supprimer les fichier utilisateurs # - Afficher notification de suppression et de mise à jour # - Lancer les mises à jour a la fermeture invité # DIR_LOGOUT_MSG=/usr/share/backgrounds/message_logout_cybersalle/ # # Bypass bug de lancement de ce script à l'écran de login pour l'invité # timeloged=$(ps -o etime,cmd,user= ax | grep [c]innamon-launcher | grep ${USER} | head -n 1 | sed -e 's/ *//' -e 's/://' -e 's/ .*//') if [ -z $timeloged ] then exit 0 fi # # Suppression des files d'impression # for d in `lpq -a | sed -n '2,$'p | sed -e 's/ \s*/,/g' | cut -d, -f 3` do lprm $d done cancel -a if $(echo $USER | grep "^guest-" | grep -qv "guest-config") then # # Suppression des donnees utilisateur·ices avant mise à jour # guestpath=/home/${USER} if [ -d ${guestpath} ] then echo rm -rf ${guestpath}/* ${guestpath}/.mozilla fi timeloged=$(ps -o etime,cmd,user= ax | grep [c]innamon-launcher | grep ${USER} | head -n 1 | sed -e 's/ *//' -e 's/://' -e 's/ .*//') # # Affichage du message de destruction des données # xviewer -f ${DIR_LOGOUT_MSG}/message_logout_suppr_datas.svg & idsupprdata=$$ sleep 3 # # Ne pas lancer les mises à jour si logout trop rapide (3 min après login) # if [ $timeloged -lt 300 ] then killall -9 xviewer exit 0 fi # # Reparation dpkg si besoin # if $(grep -q "dpkg \-\-configure \-a" /var/log/mintupdate.log) \ && $(ps -aux | grep -vq "synapti[c] \|apt[t] \|dpkg[g] ") then xviewer -f ${DIR_LOGOUT_MSG}/message_logout_dpkg_configure.svg & dpkg --configure -a fi # # Premiere passe de mise à jour # xviewer -f ${DIR_LOGOUT_MSG}/message_logout_maj_recherche.svg & mintupdate-cli -r update xviewer -f ${DIR_LOGOUT_MSG}/message_logout_maj_install.svg & mintupdate-cli -r upgrade -y >> /var/log/logoutupdate.log # # Seconde passe de mise à jour si mintupdate a été mis à jour # if [ $(grep -q "mintupdate" /var/log/logoutupdate.log ) ] then xviewer -f ${DIR_LOGOUT_MSG}/message_logout_maj_recherche.svg & mintupdate-cli -r update xviewer -f ${DIR_LOGOUT_MSG}/message_logout_maj_install.svg & mintupdate-cli -r upgrade -y fi # # Fin de cinnamon pour éviter de revoir le bureau # pidtokill=$(ps -e -o pid,cmd | sed -e 's/ */ /g' -e 's/^ *//' | grep "[c]innamon --replace" | cut -d " " -f 1) if [ ! -z $pidtokill ] then echo "kill ${pidtokill}" kill ${pidtokill} fi # # fin des utilitaires utilisés # killall -9 zenity killall -9 xviewer fi Modifier la commande d'extinction de l'applet "Menu Éteindre avec boutons" #!/bin/bash session-cleanup-script.sh systemctl poweroff - Forcer l'activation des imprimantes **cupsenable IMPRIMANTE** en début de session ===== Configurer la session guest ===== ==== Personnalisation du message d'accueil ==== Supprimer l'avertissement en anglais en créant //~/.skip-guest-warning-dialog// touch /home/guest_config/.skip-guest-warning-dialog Dans les **préférences->applications au démarrage** créer une entrée avec lançant le script :\\ #!/bin/bash zenity --title "ATTENTION" --text="Cette session est temporaire et sera effacée à l'extinction. Sauvegardez vos documents sur clée USB et non sur le bureau." --width=400 --warning --ok-label="J'ai compris" ==== Bouton extinction sur le bureau ==== Créer un lanceur sur le bureau pour éteindre le PC "Éteindre l'ordinateur en partant" #!/bin/sh zenity --question \ --title "Confirmation d'extinction" \ --cancel-label="NON je dois enregistrer mon travail !" \ --ok-label="OUI et j'éteints également l'écran" \ --text="Éteindre cet ordinateur maintenant ? \n\nMerci d'éteindre ensuite l'écran" if [ $? = 0 ] then systemctl poweroff else echo "Annulation de l'extinction" sleep 3 fi ==== Checklist modifs paramètre bureau ==== - Gestionnaire de fichiers - enlever suppression directe - garder uniquement le dossier Bureau et supprimer les marques pages correspondants (voire linker tous les dossiers classiques vers le bureau - vérifier le comportement de la fenêtre d'enregistrements des fichiers des navigateurs) - Supprimer les "entrée inutiles" des menus contextuels, (terminal, lancer en admin…) - Bureau - Enlever l'ajustement automatique (pour centrer les icones) - configuration raccourcis Bureau - Applications Démarrage - Enlever - Gestionnaire de mises à jour - Relevés du système - mintwelcome - Ajouter - message d'accueil personnalisé - - extinction automatique - Verrouillage et session - Désactiver la veille et le verrouillage écran - Enlever possibilité verrouillage session menu - Ajouter applet extinction dans la bare des tâches Configuration Programmes - Firefox - configuration policies (pour éviter les messages des mises à jours) (cf : https://wiki.desclicks.net/doku.php?id=linux:custom_firefox:cybersalle à terminer dans /etc/firefox/policies) - Extension contre la publicité - raccourcis FLE - Paramétrages - Suppression des cookies en fin de session - Ne pas proposer l'enregistrement des mots de passes - Ne pas sauvegarder l'historique - Navigation - Retirer recommander des extensions en cours de navigation - Retirer recommandes des fonctionnalités en cours de navigation - Ajout raccourci zoom impression outil copier coller - Lancer une fenêtre d'enregistrement de fichier pour laisser uniquement le dossier bureau comme possibilité d'enregistrement - Libreoffice - Grammalecte - Simple Scan - Configurer le scanner en A4 par défaut - Autres - lancer une première fois - pour éviter les messages d'accueil - pour maximiser les fenêtres - Avant finalisation préparation de session lancer bleachbit pour nettoyage cache & co - Post Clonage - macchanger ====== Configuration install ======= * Nettoyage des guest-XYZK fantômes #!/bin/bash for user in `cat /etc/passwd | grep "guest-" | grep -v "guest-config" | sed -e 's/:.*//'` do if ! $(who | grep -q $user) then userdel -r $user else echo "not destroying connected $user" fi done ==== Nettoyage dpkg ==== Les PC peuvent être amené à être éteints de manière non conventionnelle par les utilisateur·ices. Pour éviter un blocage des mises jours suite à une arrêt des configurations par dpkg, nous pouvons en attendant une prise en charge native réparer l'erreur lorsque nécessaire. #!/bin/bash if $(grep -q "dpkg \-\-configure \-a" /var/log/mintupdate.log) \ && $(ps -aux | grep -vq "synapti[c] \|apt[t] \|dpkg[g] ") then dpkg --configure -a fi Lancé via un tâche cron ou mieux avec un service au démarrage * Tâche cron 1x semaine pour éviter le blocage des mises à jours suite à un arrêt en force dpkg --configure -a 30 15 * * 1 root /usr/local/bin/dpkg_clean.sh * Service systemd fichier à copier dans **/etc/systemd/system** # cleanup in case mintupdate automation was interrupted [Unit] Description=Update Manager Automation Cleanup of dpkg error configure after fail [Service] Type=oneshot CPUQuota=50% CPUWeight=20 IOWeight=20 ExecStart=/usr/local/bin/desclicks-dpkg-clean.sh #ExecStart=grep -q "dpkg \-\-configure \-a" mintupdate.log && dpkg --configure -a [Install] WantedBy=multi-user.target et à activer systemctl enable desclicks-update-automation-cleanup-dpkg.service ==== Nettoyage file d'impression ==== # cleanup printlist startup [Unit] Description=Clean printer list [Service] Type=oneshot CPUQuota=50% CPUWeight=20 IOWeight=20 ExecStart=/usr/local/bin/cleanup_printlist.sh After=cups.service [Install] WantedBy=multi-user.target ======HP clones====== ===== Blacklister mei_me ===== via /etc/modprobe.d/blacklist.conf # Intel VPRO remote access technology driver blacklist mei_me pour les sessions live décharger le module via la commande rmmod mei_me dans le cas contraire, un message d'erreur du type suivant apparait sur les terminaux virtuels toutes les 5s : mei_me 0000:00:03.0: reset: connect/disconnect timeout. script de post_clonage de la cybersalle : #!/bin/bash nbpc=0 echo " ======================================== " echo " ! LANCEZ CE SCRIPT EN ROOT ! " echo " \$ sudo -i " echo " Les actions suivantes ne pourront " echo " etre realisees dans le cas contraire : " echo " - modification de l'adresse MAC " echo " ======================================= " echo "Entrez le numero du pc" read nbpc nbpc=$(echo $nbpc | bc) if [ $nbpc -lt 10 ] then nbpc="0$nbpc" fi service network-manager stop echo " =================================== " echo " Modification du nom de la machine : " echo DesclicksXub$nbpc echo " =================================== " name=DesclicksXub${nbpc} echo -e "${name}\n" > /etc/hostname hostname ${name} sed -e "s/^127.0.1.1\s*\(Desclicks\|cyberlis\).*/127.0.1.1 ${name}/" -i /etc/hosts echo " =================================== " echo " Modification de l adresse MAC" echo " =================================== " eth=`ip link show | grep -o eth[0-9][0-9]*` echo ip link set dev $eth address 00:00:00:00:0D:$nbpc ip link set dev $eth address 00:00:00:00:0D:$nbpc if grep -qe '^hwaddress ether' /etc/network/interfaces then sed -e "s/\(hwaddress ether\).*/\1 00:00:00:00:0d:$nbpc/" -i /etc/network/interfaces else echo -e "hwaddress ether 00:00:00:00:0d:$nbpc\n" >> /etc/network/interfaces fi service network-manager start ===== Session temporaire avec patron & auto lancement après délai ===== //Résumé: nous allons créer un compte-patron, le configurer, activer le compte invité temporaire, créer un lien symbolique du compte-patron au compte temporaire, changer l'annonce du compte invité, activer le lancement automatique du compte temporaire après un délai défini puis cacher le compte-patron.//\\ \\ Créez un utilisateur qui servira de patron à la session temporaire (ici nommée //guest_config//). **NE PAS l'appeler SKEL** !\\ Dans les **administration->écran de connexion** onglet **UTILISATEURS** activez **AUTORISEZ LES INVITES À SE CONNECTER**\\. sudo ln -s /home/guest_config /etc/guest-session/skel sudo nano /etc/lightdm/lightdm.conf Rentrez/modifiez les lignes suivantes: autologin-guest=true #autologin-user= autologin-guest=true autologin-user-timeout=15 Avec ces commandes l'utilisateur invité temporaire sera lancé après 15 secondes. À noter que le décompte commence **AVANT** le lancement de l'interface graphique !\\ \\ Note : il est possible que le fond d'écran proposé par lightDM ne corresponde pas à celui du compte dans ce cas écraser l'image correspondante située dans **usr/share/backgrounds/linuxmint/default_background** par l'image désirée.\\ === Sources === * https://mike.kaply.com/2016/09/08/debugging-firefox-autoconfig-problems/ * https://help.ubuntu.com/community/CustomizeGuestSession * https://wiki.debian.org/fr/SysVInit * https://doc.ubuntu-fr.org/tutoriel/application_demarrage * https://doc.ubuntu-fr.org/systemd * https://doc.ubuntu-fr.org/creer_un_service_avec_systemd * Session logout script : * https://askubuntu.com/questions/68407/where-do-i-place-a-logout-script-for-lightdm * and shutdown : https://askubuntu.com/questions/250171/logout-scripts-not-completed-on-shutdown-reboot?rq=1 * Sécuriser grub : https://memo-linux.com/securiser-lacces-et-le-demarrage-du-grub-par-mot-de-passe/ * Sécuriser physiquement : cadenas * Polices Microsoft : * https://www.moyens.net/linux/comment-installer-les-polices-microsoft-truetype-sous-linux/ * https://doc.ubuntu-fr.org/msttcorefonts