Sorcellerie

Quelques formules et incantations pour adapter les clients linux au contexte de Poudlard du collège

Lanceurs sur le bureau

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.

Extinction automatique des postes

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