{{ :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