Quelques formules et incantations pour adapter les clients linux au contexte de Poudlard du collège
Les lanceurs sur le bureau sont des fichiers propre à chaque utilisateur. Pour homogénéiser les bureaux de tous les utilisateurs, à la première connexion sur le poste le contenu du répartoire /etc/skel est copié dans le home. Cela permet de distribuer des lanceurs pour tous : par exemple un accès à l’ENT.
Le fichier MBN.desktop est à placer dans /etc/skel/Desktop et contient :
[Desktop Entry]
Name=Mon Bureau Numérique
GenericName=Accès à MBN
Comment=
Exec=/snap/bin/firefox "https://clg-kochersberg.monbureaunumerique.fr"
Type=Application
Icon=/usr/share/icons/logoCK.png
Terminal=false
Ne pas oublier de mettre effectivement le fichier logoCK.png à sa place.
Ce fichier est alors copié dans le bureau de l’utilisateur à la première connexion. Problème, il n’est pas marqué comme étant « de confiance ». Pour éviter une manipulation supplémentaire à l’utilisateur, un script est lancé à la première connexion.
Le fichier d’autostart /etc/xdg/autostart/first_login.desktop contient :
[Desktop Entry]
Type=Application
Name=Premier démarrage
Exec=/usr/local/bin/first_run.sh
X-LXQt-Need-Tray=false
Terminal=false
first_run.sh est un script qui teste la présence d’un fichier témoin (caché) et s’arrête s’il existe. Le script n’est donc lancé qu’une seule fois à la première connexion du compte (ou si le fichier témoin est supprimé)
#!/bin/bash
FLAG="$HOME/.first_run_done"
if [ -f "$FLAG" ]; then
exit 0
fi
# ---------- code principal ----------
for f in ~/Desktop/*.desktop
do
chmod +x "$f"
gio set "$f" metadata::trusted true
done
# ------------------------------------
# flag pour un one-shot
touch "$FLAG"
exit 0
Rendre le script exécutable : chmod +x /usr/local/bin/first_run.sh
Remarque : la modification de /etc/skel n’a d’effet que sur les futurs premières connexions des utilisateurs. Un utilsiateur qui se serait déjà connecté avant la modification n’en bénéficiera pas.
Pour éteindre automatiquement le poste à 20h00 on peut utiliser une tâche ̀cron`
̀sudo crontab -e
Ajoutez la ligne 0 20 * * * systemctl poweroff en fin de fichier.
Pour scripter la modification et l’automatiser :
crontab -l > /tmp/crontab
echo "0 20 * * * systemctl poweroff" >> /tmp/crontab
crontab /tmp/crontab
rm $/tmp/crontab