Notes pour l'installation et la maintenance de PC sous Linux au lycée⚓︎
[Mise à jour : 10/02/2026]
Les notes sur nos premières installations sont laissées à disposition plus bas, pour mémoire, mais ne sont plus très à jour et il doit rester quelques coquilles qui ne seront pas corrigées. À noter que certains problèmes mentionnés ont disparu sur notre dernière installation, apparemment sans rien avoir modifié...
Caractéristiques principales⚓︎
Le contexte
-
Il s'agit de documenter notre installation d'une distribution Linux Mint sur des PC de notre lycée (salle A208 utilisée par les spécialistes NSI principalement, en salle des profs...)
-
Les principaux scripts et fichiers de configuration sont fournis, consultables en annexe en bas de page.
-
Après une première expérience en salle A208 utilisée entre autres par les spécialistes NSI, malgré un bilan globalement très positif, comme nous l'avions craint (et dit) dès le départ, nous avons pu constater des inconvénients liés au en double boot :
-
Avec un démarrage par défaut sous Windows pour ne pas effrayer l'utilisateur lambda, pas de réveil automatique possible, pour les mises à jour hors période d'utilisation, par exemple.
-
Avec Windows 10 en parallèle, on perdait aussi régulièrement, de manière aléatoire, l'accès à Grub et donc au boot sous Linux. Une manipulation était nécessaire sur le PC pour le rétablir.
-
Suite à l'installation de Windows 11, l'accès à Linux a été complètement écrasé et la manip. précédente ne suffisait plus. Il fallait donc résoudre ce problème de manière plus pérenne.
-
-
Suite à d'interminables tergiversations, il a finalement été décidé de réinstaller Linux Mint en simple boot dans cette salle. C'est cette approche que nous présentons ici.
-
Nous devrions reproduire la même installation sur nos anciens HP 6200 (i5 Gen.2, à 4 cœurs), installés en salle des profs et dans la salle 33 (où Windows était tellement lent que quasiment plus personne ne les utilisait).
-
Les ordinateurs sont intégrés à l'Active Directory (Windows) du lycée, les utilisateurs s'y connectent avec leurs identifiants habituels et retrouvent les mêmes partages réseau que sous Windows.
-
Seul un compte local peut utiliser
sudo, les autres, y compris profs, sont les comptes réseau habituels enregistrés à l'AD (Windows) et n'ont pas de droits d'admin. -
On ajoute un affichage sur le fond du Bureau indiquant l'adresse IP et le nom du PC (obtenu avec
conky), un petit logo (NIRD) et quelques conseils. -
Les mises à jour sont automatiques. Les PC se réveillent à 6h30, et se mettent à jour, avant de s'éteindre (+ extinction auto en fin de journée, les utilisateurs sont prévenus et peuvent l'annuler dans les deux cas).
-
Cette fois-ci, nous avons utilisé FOG (déjà installé au lycée) au lieu d'une clé bootable (RescueZilla) pour déployer l'installation, malgré quelques caprices des BIOS/UEFI des PC de cette salle qui ne permettent pas de l'exploiter de manière optimale (on devra activer « à la main » le boot PXE pour déployer l'image et parfois remodifier les paramétrages BIOS/UEFI derrière pour que tout fonctionne). Au final, c'est quand même très appréciable, avec 25 PC, d'autant plus qu'ils étaient déjà « inscrits » dans FOG en tant qu'hôtes sous Windows, ce qui nous a encore simplifié la tâche !
-
Pour automatiser en partie l'installation, nous avons réalisé deux scripts :
preparer_pour_imagesort le PC de l'AD et le renomme, pour éviter tout conflit, avant d'enregistrer son image avec FOG.renomme, donne le nom au PC (une fois déployé ou fraichement créé) et l'intègre à l'AD. Nous n'avons pas testé l'automatisation avec FOG de cette dernière procédure, par manque de temps et parce que notre installation ne devrait pas survivre au delà de la fin d'année scolaire (passage prévu à la « solution Région » dès la rentrée 2027, sans compter que nous n'avons pas directement accès à la machine qui fait tourner FOG...) -
Nous ne détaillerons pas tous les logiciels installés, dans cette procédure, mais fournirons un fichier à télécharger pour les récupérer.
-
Nous avons placé un PC avec l'installation prévue en salle des profs 2 semaines avant la mise en place dans la salle de classe (de toute façon nous n'avions pas l'accord pour faire cette installation plus tôt). Cela a permis de donner des indications aux collègues pour limiter les réticences, d'ajouter quelques logiciels, et d'adapter quelques paramétrages et des éléments rappelés dans la page de documentation fournie. Cela semble avoir facilité l'acceptation du changement et rassuré.
Notes sur l'installation⚓︎
-
On installe Linux Mint 22.3 Cinnamon sur le SSD où se trouvait Windows (nvme 256Go), les SSD SATA qui avaient été ajoutés pour les partitions Linux quand nous étions en double-boot seront récupérés pour équiper notamment les PC de la salle 33 (ou salle des profs) qui ne disposaient que de disques durs mécaniques. Les PC sont nommés
A208-LPROF,A208-L01,A208-L02(et33-L01), etc. en cohérence avec le reste du réseau, avec-L00pour l'image de référence qui sera enregistrée pour déploiement ultérieur. -
On choisit le clavier
fr (alt)(idemfr oss) et d'installer les codec multimédia. -
Un unique utilisateur (local)
adminlinuxest créé, qui sera le seul autorisé à utilisersudo(les autres seront tous identifiés sur l'AD du lycée, avec leurs comptes habituels). -
Au reboot, on ajoute les dépôts locaux, on réalise les mises à jour. On installe les logiciels voulus (cf. liste dans nos anciennes notes, mais ici il y en a davantage, voir plus bas pour les récupérer). On a évité certains gros paquets en flatpak (OnlyOffice, VS Codium...). La plupart de ceux installés ont été récupérés via Menu / Outil de sauvegarde / Sélection de logiciels, depuis une installation existante en salle des profs qui donnait satisfaction.
-
Pour l'inclusion à l'AD, il faut installer (ex.
sudo apt install ...)adcli,krb5-user,libnss-sss,libpam-sss,ntp,realmd,samba,sssd,sssd-tools. Pourkrbd5-user, en mode interactif lors de son installation, saisir le nom de royaume en majuscules, à savoir pour nousJEAN-MONNET.LOCAL. -
Dans Menu / Écran de connexion, activer le verrouillage du pavé numérique (s'il n'apparaît pas, vérifier que
numlockxest installé), permettre une connexion manuelle, cacher la liste des utilisateurs, interdire l'utilisateur invité. + Écran désignéDP-4...pour ne pas être sur le vidéoprojecteur uniquement au boot sur le PC prof. -
Via le menu, Applications au démarrage, enlever Blueman, Welcome...
-
Paramètres système / Économiseurs d'écran ou Gestion de l'alimentation, pour éviter le verrouillage à la mise en veille.
-
Relevés système (en bas à droite), ajouter les paquets de langue, pilotes de périphériques (dont propriétaires NVidia suivant le matériel), codecs multimédia, si besoin. Ignorer Timeshift... ou au contraire l'utiliser (mais on aura une image disque de toute manière, donc c'est moins incontournable) !
-
On a opté pour le pilote vidéo :
nvidia-driver-535(conseillé) au lieu dexserver-xorg-video-nouveau, sur notre matériel. -
On crée sur le Bureau un dossier « PROBLÈMES TECHNIQUES », qui contiendra des documentations (PDF ou autre) et des lanceurs divers, par exemple pour faciliter la soumission de « tickets » d'incident précis (très basiquement dans notre cas, un fichier .txt prérempli avec identifiants user et PC, heure, qui sera transmis par email ou messagerie Pronote), ou consulter l'état des prise en chage de ces tickets (simple pointeur vers une page Framadoc dédiée !)
-
Ajout d'icônes sur le panneau en bas d'écran (Menu Mint pour trouver chaque application, puis clic-droit / Ajouter au panneau) : LibreOffice Writer, (voire Calc, Impress), Navigateurs, Thonny, capture d'écran...
-
Pour les navigateurs, on limite le nombre de paramètres par défaut et on laisse l'utilisateur libre de modifier sa configuration (bien qu'elle reste locale au PC, comme le reste du profil utilisateur).
-
Pour Chromium, on se contente de quelques liens (en fait essentiellement un lien vers une page externe qu'on pourra facilement mettre à jour indépendemment de l'installation de ces PC et même utiliser depuis d'autres, qui contiendra les URL qu'on veut fournir). On choisit un moteur de recherche par défaut (StartPage.com) et on fait du tri dans ceux proposés (eBay...) On coche « demander où télécharger » dans les paramètres.
-
Pour Firefox, navigateur par défaut, nous avions eu des soucis en utilisant une copie du profil dans
/etc/skel, quand les utilisateurs se connectaient la première fois après qu'une mise à jour du navigateur ait déjà eu lieu. Du coup, nous optons pour une autre approche, en utilisant un fichier/etc/firefox/policies/policies.json(contenu en annexe). Ces réglages sont similaires à ceux de Chromium, plus l'ajout de l'extension uBlock Origin.Par sécurité, nous laissons quand même un lanceur, dans le dossier « PROBLÈMES TECHNIQUES » sur le Bureau, qui efface
.mozilla/et.config/mozilla/(modification récente de l'emplacement de ce fichier de configuration ?) dans l'espace personnel, en cas de souci similaire à ce que nous avions rencontré.
-
-
Certains paramétrages sont obtenus avec
dconf(pour Nemo, Xed, Xreader, ou le panneau utilisé par Cinnamon et ses icônes) : un fichier a été créé, avec par exemple
dconf dump /org/nemo/preferences/ > /usr/share/jeanmo/config_nemoet il est recopié, à la première connexion, en lançant dans le script associé une commande comme
dconf load /org/nemo/preferences/ < /usr/share/jeanmo/config_nemo(voir en annexe dansinitialisations.shpour les autres. -
Pour que les noms des PC soient résolus par le serveur DNS local (AD) :
- Déposer le script
update_dns_data.sh(voir annexe), rendu exécutable et lisible par tous, dans/usr/share/jeanmo/(répertoire à créer,sudo mkdir /usr/share/jeanmo,sudo chmod a+rx /usr/share/jeanmo/update_dns_data.sh). - Créer un fichier
/etc/rc.localet lui donner les bons droits et propriétaire (chown root:root /etc/rc.localetchmod 700 /etc/rc.local), qui exécutensupdateavec en entrée le retour du script précédent (là aussi, voir en annexe).
- Déposer le script
-
L'intégration à l'AD sera géré par le script dédié
renomme, à lancer paradminlinuxaprès déploiement de l'image. Lors de l'installation, on le copie sur son Bureau (avec les droits d'exécution), ainsi que le scriptprepare_pour_image. Le premier se lance avec, dans un terminal lancé depuis le Bureau d'adminlinux,
sudo ./renomme A208-L01 gervais.jen adaptant les paramètres : nom du PC, suivi d'un identifiant réseau d'un utilisateur qui a les droits pour ajouter une station de travail à l'AD (l'admin. du réseau conviendrait, mais là il nous a donné ces droits pour éviter d'avoir à le solliciter à chaque fois). Le second script est à lancer (sans paramètre) avant de capturer l'image du PC. -
Pour la récupération des partages réseau et autres initialisations : copier les scripts (en annexe)
partages.shetinitialisations.shdans/usr/share/jeanmo, leur donner les droits en exécution et lecture pour tous (chmod a+rx /usr/share/jeanmo/*.sh). Le premier monte les partages réseau et comme il permet de détecter si l'utilisateur est prof, il copie si c'est le cas sur le Bureau des fichiers spécifiques (cf. script en annexe). Le second assure le reste des paramétrages initiaux. Centraliser ainsi permet une mise à jour pour tout utilisateur plus facile et automatisable par la suite, si besoin.
Créer un lanceurPartages.desktop(fichier texte, voir annexes), puis le placer dans/etc/skel/.config/autostart/. On peut aussi le créer en créant un lanceur vers la commande en mode graphique, via le Menu et Applications au démarrage, ou simplement récupérer celui qu'on a sauvegardé, puis le récupérer dans~/.config/autostart. -
Placer un fichier
.conkyrc(cf. en annexes pour le nôtre, qui utilisera le logo NIRD a stocker au même niveau), dans/usr/share/jeanmo. Cela assurera l'affichage d'informations en surimpression sur le fond d'écran, grâce au lancement deconkydansinitialisations.sh. -
Pour démonter explicitement les partages à la fermeture (nécessaire ??), dans
/etc/lightdm/lightdm.confajouter la règlesession-cleanup-script=/usr/share/jeanmo/demontages.shen déposant le fichier correspondant (voir annexe) au bon endroit, avec les droits d'exécution et de lecture pour tous. -
Pour l'identification (sûrement en doublon avec les réglages fait via l'interface graphique, laissé là au cas où par sécurité), éditer
/etc/lightdm/lightdm.conf.d/70-linumint.conf:
greeter-show-manual-login=true
user-session=cinnamon
greeter-setup-script=/usr/bin/numlockx on
Cette dernière commande active le pavé numérique dès la connexion. -
Pour la création automatique du répertoire perso local personnalisé à la première connexion, éditer
/etc/pam.d/common-sessionet ajouter, entresession required pam_unix.soetsession optional pam_sss.so:session required pam_mkhomedir.so skel=/etc/skel umask=0077. Ce masque assure les permissions en700, soitrwx------, pour le répertoire personnelhome/utilisateur/.
Pour la création du répertoire modèle/etc/skel: penser à purger les historiques de navigation et autres fichiers temporaires ou inutiles avant la copie dans/etc/skel. Puis y copier notamment~/Bureau,.config/chromium,.config/dconf,.config/gtk-*,.config/cinnamon,.config/Thonny... Réaffecter à tous comme propriétaire et grouperoot:chown -R root:root /etc/skel/.
Important
Effacer .config/gtk-3.0/bookmarks dans /etc/skel/(car sinon les
raccourcis pour Nemo (Images...) sont nommés en dur avec le nom de
l'utilisateur adminlinux et ne fonctionnent pas ; alors qu'en l'absence
de ce fichier, il est recréé automatiquement pour l'utilisateur).
Et les répertoires Bureau, Téléchargements, Modèles, Public,
Documents, Musique (sans s), Images et Vidéos doivent être
présents, même vides, sinon (voir paramètres dans
~/.config/user-dirs.dirs), l'utilitaire
xdg-user-dirs-update chargé de franciser les noms de ces espaces ne les
crée pas et le contenu du répertoire personnel s'affiche directement sur
le Bureau !
-
Mises à jour et extinction automatiques, via
cron:-
créer (en tant qu'
adminlinux, avecsudo) des fichiers textes dans/etc/cron.dpour chaque tâche à automatiser (voir en annexes). On s'appuie sur un autre script,notify-send-all(pas de notre cru mais sous licence libre), pour envoyer le message à tout utilisateur connecté avant une extinction automatique. Il doit être dans le path, pour nous dans/usr/local/bin/. -
Ici, on se contente d'un flag de bon ou mauvais fonctionnement lors des mises à jour, sans vrai log, c'est donc largement perfectible...
-
Il est important de paramétrer notre distribution pour que l'heure de l'horloge interne soit celle de l'OS, ce qui n'est pas le cas par défaut sous Linux (ou alors, régler le BIOS en conséquence pour le réveil automatique, mais c'est pénible avec les changements d'heure) :
timedatectl set-local-rtc 1(avectimedatectlon peut vérifier queRTC in local TZpasse àyes; et le paramètre0inverse ce choix).
-
-
Pour pouvoir se connecter comme
adminlinuxdepuis un autre PC enssh, (on pourra ainsi utiliser au besoinmsshpour regrouper des manipulations, voire Ansible mais vu notre utilisation il est sans doute un peu complexe pour pas grand chose), on va créer une paire de clé pourssh, puis copier la clé publique dans le répertoire personnel de ce compteadminlinuxet copier la clé privée sur les PC d'où l'on veut accéder à nos stations de travail (ou ne se connecter que depuis le PC où l'on crée la paire de clé, avec le même compte utilisateur) :- depuis le PC depuis lequel on pourra se connecter à distance, exécuter
ssh-keygen -t ed25519 -f ~/.ssh/linuxA208silinuxA208est le nom de la clé, puis.
ssh-copy-id -i ~/.ssh/linuxA208.pub NomDUtilisateur@A208-L00pour transférer la clé publique, oùA208-L00est le nom du PC qu'on est en train de configurer, remplaçable par son adresse IP comme192.168.2.59.
Si besoin, visiter https://www.reddit.com/r/linuxmint/comments/1fr4s26/how_to_generate_a_ssh_key_on_linux_mint/?tl=fr ou https://www.hostinger.com/fr/tutoriels/comment-configurer-ssh-sans-mot-de-passe méthode 3, si le mot de passe est toujours demandé. - Ensuite, pour copier la clé privée depuis ce PC distant sur un autre
compte du même PC ou un autre PC, copier le contenu du dossier
.ssh/dans le répertoire perso deadminlinux, vers le compte sur l'autre PC dans le répertoire.ssh/à créer si besoin. Les droits doivent être à700en octal pour le dossier.ssh,600pour la clé privéelinuxA208et644pour la clé publiquelinuxA208.pub(les autres fichiers n'ont pas besoin d'être copiés). - Vérifier éventuellement sur le PC qu'on installe que le port 22 est
bien ouvert, avec
ss -tuln| grep 22.
- depuis le PC depuis lequel on pourra se connecter à distance, exécuter
-
Avant de cloner l'image du disque, effacer les répertoires temporaires, désinstaller ce qu'on est sûr de ne plus utiliser (
Thunderbird...). Et faire les mises à jour (rebooter pour vérifier que tout est OK si c'est demandé, à savoir si le noyau a été mis à jour).
Purger les comptes, saufadminlinux: Menu / Utilisateurs et Groupes permet de le faire, mais on n'a réussi qu'à les supprimer un par un (et ils restent visibles dans la liste, sur le moment ; et il semble qu'il faut aussi supprimer leur répertoire dans/home, par exemple depuis le gestionnaire de fichiers, en tant qu'administrateur avec un clic droit, pour « exécuter en tant qu'administrateur », en faisant attention de préserveradminlinux).
Pas très satisfaisant, mais on n'a pas trouvé mieux ni cherché beaucoup. Exécutersudo userdel --remove-home nom.ppour chacun ne semble pas fonctionner dans un script... -
Finalement, exécuter en tant qu'
adminlinuxle scriptprepare_pour_imageensudopour que le PC soit prêt à être clôné (mais il n'est alors plus utilisable par un utilisateur non local). Puis le réintégrer au domaine avec un nom correct, viarenomme(cf. rubriques ci-dessous).
Capture d'une image-disque⚓︎
Remarques
-
Pour utiliser une distribution live comme RescueZilla à la place de FOG, ce qui est pratique si l'on a peu de PC à cloner, voire les notes de notre ancienne installation...
-
Si au contraire on souhaite utiliser FOG mais qu'on n'en dispose pas sur son réseau, on peut l'installer sur un PC portable et connecter provisoirement plusieurs stations à cloner via un switch (en se déconnectant du réseau du lycée, pour ne pas introduire de serveur DHCP bis), voir par exemple la doc. de PrimTux à ce sujet.
-
Dans notre lycée, le boot PXE est normalement configuré pour booter sur le menu de FOG, avec un choix par défaut consistant à booter sur le disque principal après 1 seconde, sans action particulière de l'utilisateur, donc de manière quasi invisible, sauf s'il active immédiatement les touches « flèches » pour rester au niveau du menu)
-
Depuis l'interface web de FOG (chez nous
192.168.0.92/fog),-
Créer une image (ex.
Linux_A208) si elle n'existe pas encore (si vous n'avez pas l'habitude, on crée en fait la fiche descriptive de l'image, même si elle n'existe pas encore). Nous avons choisi une taille d'image variable, c'est un peu plus long mais ça permet de se déployer sur des PC variés plus facilement ensuite. -
Nommer correctement les hôtes (nos stations de travail), qu'il faut inscrire auparavant si ça n'a pas encore été fait, voir sur https://fogproject.org/ si besoin. Leur associer l'image précédemment créée, puis décocher l'inscription auto. à l'AD et le renommage auto.
-
En sélectionnant l'hôte contenant l'installation à cloner qu'on vient de préparer, lancer la capture (pour refaire une image après une mise à jour, en écrasant l'ancienne, il suffit de relancer cette capture, sans refaire les étapes précédentes). Dans une installation plus standard, puls foncitonnelle que la notre, cocher wake on lan permettrait d'allumer le PC et de lancer la capture à distance.
-
-
Dans notre cas en A208, il faudra (après avoir repris les réglages BIOS/UEFI via la copie sur une clé USB, ou rétabli le démarrage propriétaire), booter en PXE via des appuis répétés sur F12 au boot, pour le PC modèle. La capture devrait se lancer automatiquement.
-
Toujours dans notre cas, il faut parfois désactiver le démarrage propriétaire pour que tout fonctionne ensuite (même version de BIOS, a priori même configuration... Mystère). De manière générale, le PC reboote sous Linux Mint.
-
Pour pouvoir réutiliser le PC modèle, exécuter le script
renommepour lui redonner son nom et l'intégrer à l'AD.
Déploiement d'une image-disque sur les PC⚓︎
-
Depuis l'interface web de FOG, les PC doivent avoir été enregistrées, associées à la bonne image (voir « capture » ci-dessus). Les sélectionner, puis lancer le déploiement de l'image. (S'ils ont été enregistré avant, il est possible de lancer ce déploiement depuis le PC via le menu FOG au boot, mais attention à la saisie du mot de passe, car le clavier en en QWERTY).
-
Chez nous en A208, comme pour la capture, on boote en PXE via F12 répété au démarrage du PC, après avoir si besoin reconfiguré le BIOS/UEFI pour que ce soit possible. Le déploiement de l'image sur le PC devrait se lancer.
-
Au reboot (remodifier le BIOS/UEFI à nouveau si ça coince), se connecter comme
adminlinux, ouvrir un terminal au niveau du Bureau (clic droit...), puis lancer une commande du typesudo ./renomme A208-L01 gervais.jen adaptant le nom du PC et celui d'un utilisateur réseau autorisé à ajouter une station à l'AD. -
Il semble qu'il faille rebooter pour que le nom de l'hôte soit pris en compte. Il est prudent de tester une connexion avec un compte utilisateur du réseau (inscrit à l'AD).
Annexes (scripts...)⚓︎
Remarque
Histoire de ne pas alourdir encore cette longue page, nous n'avons pas conservé les anciennes versions des scripts et fichiers de configuration, (quasi-)identiques aux plus récents, fournis ci-dessous.
À noter que l'ancien partage.sh est maintenant scindé en partage.sh
pour ce qui concerne presque exclusivement le montage des partages réseau
et initialisations.sh pour le reste.
Script partages.sh⚓︎
#!/bin/bash
###### Code de /usr/share/jeanmo/partages.sh #####
# Montage des partages réseau,erreurs ignorées (si droits insuffisant)
# Répertoire perso sur le réseau
gio mount "smb://monnet-data/${USER}$"
# Pour les profs
# Démonter d'abord, pour que juste après, "erreur" signifie bien "non prof"
gio mount -u "smb://monnet-data/echange professeurs$" 2> /dev/null
gio mount "smb://monnet-data/echange professeurs$" 2> /dev/null
# Pas d'erreur <=> utilisateur prof ===========================================
if [ $? -eq 0 ]
then
cp "/usr/share/jeanmo/Consultation des Tickets d'Incident.desktop" "/home/${USER}/Bureau/PROBLÈMES TECHNIQUES/"
cp "/usr/share/jeanmo/Signalement de Panne ou Problème.desktop" "/home/${USER}/Bureau/PROBLÈMES TECHNIQUES/"
cp "/usr/share/jeanmo/Fiche_Memo_Linux_Lycee.pdf" "/home/${USER}/Bureau/PROBLÈMES TECHNIQUES/"
cp "/usr/share/jeanmo/Pronote Web PROF.desktop" "/home/${USER}/Bureau/"
# Partages de toutes les classes (dans les sous-répertoires)
gio mount smb://monnet-data/divisions$ 2> /dev/null
# Partage spécifique à la discipline
for discipline in Allemand Anglais Espagnol "Hist geo" Italien \
"Lettres Modernes" Mathematiques Philosophie S2I \
SC.ECO.SOC SC.PHY.APP SC.PHY.CHIMIE "SC.VIE TERRE"
do
gio mount "smb://monnet-data/${discipline}$" 2> /dev/null
# Retour == 0, soit "Discipline trouvée" => sortie de boucle
if [ $? -eq 0 ]
then
break
fi
done
# Utilisateur non prof ========================================================
else
cp "/usr/share/jeanmo/Pronote Web.desktop" "/home/${USER}/Bureau/"
# Ajouter sa classe, pour un élève (erreurs ignorées)
for classe in 1G1 1G2 1G3 1G4 1G5 1G6 1G7 1G8 \
TG1 TG2 TG3 TG4 TG5 TG6 TG7 \
2D01 2D02 2D03 2D04 2D05 2D06 2D07 \
2D08 2D09 2D10 2D11 2D12 PREPA2ND \
1STI2D1 1STI2D2 1STI2D3 1STL TSTI2D1 TSTI2D2 TSTI2D3 \
TSTL STS1 STS2 STS1\ UFA
do
gio mount "smb://monnet-data/${classe}$" 2> /dev/null
# Retour == 0, soit "Classe trouvée" => sortie de boucle
if [ $? -eq 0 ]
then
break
fi
done
fi
# Pour tous ===================================================================
# Échange élèves, Ressources
gio mount "smb://monnet-data/echange eleves$" 2> /dev/null
gio mount smb://monnet-data/ressources$ 2> /dev/null
# Pour les comptes examen NSI
gio mount smb://monnet-data/NSI$ 2> /dev/null
# Retour à 0 signifie "Partage NSI trouvé"
if [ $? -eq 0 ]
then # Retirer un partage avec des informations potentielles...
gio mount -u smb://monnet-data/ressources$ 2> /dev/null
fi
Script initialisations.sh⚓︎
#!/bin/bash
###### Code de /usr/share/jeanmo/initialisations.sh #####
# Autres / config.
# . Activation pavé numérique
numlockx on
# . Informations en fond d'écran
conky --quiet --config=/usr/share/jeanmo/.conkyrc
# . Paramétrages Xed et Xreader (svg avec dump au lieu de load), etc.
dconf load /org/x/editor/preferences/ < /usr/share/jeanmo/config_xed
dconf load /org/x/editor/preferences/ < /usr/share/jeanmo/config_xreader
dconf load /org/nemo/preferences/ < /usr/share/jeanmo/config_nemo
dconf load /org/cinnamon/app-menu-label/ < /usr/share/jeanmo/config_cinnamon_menu
Lanceur vers le script de montage des partages réseau⚓︎
[Desktop Entry]
Name=Récupération des partages
Exec=/usr/share/jeanmo/partages.sh
Type=Application
Icon=document-properties
Terminal=false
Script demontages.sh⚓︎
!/bin/bash
gio mount -u "smb://monnet-data/${USER}$" 2> /dev/null
gio mount -u "smb://monnet-data/echange eleves$" 2> /dev/null
gio mount -u "smb://monnet-data/ressources$" 2> /dev/null
gio mount -u "smb://monnet-data/echange professeurs$" 2> /dev/null
gio mount -u "smb://monnet-data/divisions$" 2> /dev/null
Fichier de configuration .conkyrc⚓︎
conky.config = {
background = true,
own_window = true,
own_window_class = 'Conky',
own_window_transparent = false,
own_window_type = 'desktop',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_argb_visual = true,
own_window_argb_value = 0,
double_buffer = true,
no_buffers = true,
use_spacer = 'none',
use_xft = true,
xftalpha = 1,
font = 'Sans:size=28',
update_interval = 5,
uppercase = false,
override_utf8_locale = true,
stippled_borders = 1,
draw_borders = false,
draw_graph_borders = true,
draw_outline = false,
draw_shades = true,
show_graph_scale = true,
show_graph_range = true,
alignment = 'top_right',
gap_x = 20,
gap_y = 20,
net_avg_samples = 1,
cpu_avg_samples = 6,
short_units = true,
pad_percents = 2,
text_buffer_size = 2048,
out_to_console = false,
out_to_stderr = false,
extra_newline = false,
}
conky.text = [[
${hr}
$nodename
$USER
${font Sans:size=14}
${exec hostname -I}
${hr}
# "o" ajoutés pour avoir Go et pas G
#RAM $alignr${mem}o / ${memmax}o
# / $alignr${fs_used /}o / ${fs_size /}o
#CPU $alignr${cpu cpu0}%
#Uptime $alignr $alignr$uptime
Les "partages" accessibles depuis
le Bureau sont l'équivalent des lecteurs
réseau utilisés d'habitude sous Windows.
Utilisez-les pour enregistrer vos
documents, plutôt que "localement" sur
le PC (dans Documents, Images, etc.)
${hr}
Souci technique ?
=> Dossier PROBLÈMES TECHNIQUES
sur le Bureau
${hr}
${image /usr/share/jeanmo/Logo_NIRD.png -s 163x69 -p 190,130}
]]
Script prepare_pour_image⚓︎
#!/usr/bin/bash
# À exécuter en sudo
if [[ "$EUID" != "0" ]]
then
echo "Script à lancer avec sudo"
echo "Usage : $0 # Sans paramètre"
exit 1
fi
# Renommer en -L00
echo ". Nom initial du PC : $(cat /etc/hostname)"
sudo sed -i "s/-L[[:digit:]][[:digit:]]\ */-L00/g" /etc/hosts
sudo sed -i "s/-L[[:digit:]][[:digit:]]\ */-L00/g" /etc/hostname
echo ". PC renommé en $(cat /etc/hostname)"
# Sortir de l'AD
sudo realm leave jean-monnet.local
echo -e ". PC sorti de l'AD\n"
# Pense-bête !
echo -e "(Purger /tmp/, répertoires perso. et historiques de navigateurs avant de capturer l'image du PC)\n"
echo ">>> Penser à renommer le PC et le réintégrer à l'AD après la capture ! <<<"
Script renomme⚓︎
#!/usr/bin/bash
## À exécuter en sudo
if [[ "$EUID" != "0" ]]
then
echo "Script à lancer avec sudo"
echo "Usage : $0 <nouveau_nom_du_PC> <utilisateur_pouvant_inscrire_a_l_AD>"
exit 1
fi
## À appeler avec deux paramètres
if [ "$#" -ne 2 ]; then
echo -e "À lancer avec\n * un 1er paramètre = nom du PC, ex. A208-L00"
echo " * un second = compte réseau autorisé à inscrire un PC à l'AD"
fi
## Modifier le nom du PC
sudo echo $1 > /etc/hostname
sudo sed -i "s/A208-L00/$1/g" /etc/hosts
echo "PC renommé en $(cat /etc/hostname)"
## Inscrire à l'AD
# Reconstruction d'une nouvelle identité
sudo rm /etc/machine-id && sudo systemd-machine-id-setup
# Inscription
echo -e "Pour la suite :\n * premier mot de passe / compte réseau qui inscrit à l'AD,"
echo " * Second mot de passe éventuel / compte admin local Linux"
sudo realm join -U $2 jean-monnet.local
# Mise à jour des paramètres sssd modifiés par la précédente instruction
sudo sed -i "s/home\/%u@%d/home\/%u/" /etc/sssd/sssd.conf
sudo sed -i "s/use_fully_qualified_names = True/use_fully_qualified_names = False/" /etc/sssd/sssd.conf
# Redémarrage du service
sudo service sssd restart
echo "PC inscrit à l'AD. Vérification (l'utilisateur doit être reconnu => uid, etc. listés:"
## Test facultatif avec un ID d'utilisateur du réseau
id gervais.j
Fichiers pour s'inscrire sur le serveur DNS⚓︎
-
/usr/share/jeanmo/update_dns_data.sh -
/etc/rc.local(propriétaire et grouperoot, droits700)
Script notify-send-all⚓︎
Par Tony Walker, sous licence MIT.
#!/usr/bin/env sh
display_help() {
echo "Send a notification to all logged-in GUI users."
echo ""
echo "Usage: notify-send-all [options] <summary> [body]"
echo ""
echo "Options:"
echo " -? | --help This text."
echo ""
echo "All options from notify-send are supported, see below..."
echo
notify-send --help
exit 1
}
while [ $# -gt 0 ]; do
case $1 in
-h | --help)
display_help
exit 1
;;
*)
break
;;
esac
done
for SOME_USER in /run/user/*; do
SOME_USER=$(basename "$SOME_USER")
if [ "$SOME_USER" = 0 ]; then
# echo "* Skipping root user."
:
else
sudo -u $(id -u -n "$SOME_USER") \
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$SOME_USER"/bus notify-send ${@+"$@"}
fi
done
exit 0
Script ticket.sh pour préparer un message de dysfonctionnement⚓︎
#!/bin/bash
from="${USER} sur $(hostname -I) = $(hostname) ($(date +"%a %d/%m/%Y %X"))"
file="/home/${USER}/Bureau/Ticket_Incident_${USER}_$(date +"%F").txt"
echo "=========================================" > ${file}
echo " Ticket incident (PC Linux uniquement) " >> ${file}
echo "=========================================" >> ${file}
echo "Réf. : $from" >> ${file}
echo "Descriptif :" >> ${file}
echo " " >> ${file}
echo " . . ." >> ${file}
echo " " >> ${file}
echo "=========================================" >> ${file}
echo "Une fois le descriptif complété avec le plus de précision possible :" >> ${file}
echo " * Fichier / Enregistrer => récupérer ce fichier sur votre Bureau (sur ce PC), sans le renommer" >> ${file}
echo " * Le copier si besoin sur une clé USB, ou votre partage réseau personnel" >> ${file}
echo " * L'envoyer à Jean-Marc GERVAIS via Pronote ou par email SVP" >> ${file}
echo "MERCI pour votre retour, désolé pour le désagrément !" >> ${file}
xed ${file}
Script fix_firefox (encore utile ??)⚓︎
#!/usr/bin/env sh
# Ancienne version
rm -rf /home/$USER/.mozilla 2&> /dev/null
# À partir de v.147 ??
rm -rf /home/$USER/.config/mozilla
notify-send "Tentative de réparation effectuée (Fermez & Relancez Firefox)..."&
firefox &
Fichier /etc/firefox/policies/policies.json pour paramétrer Firefox⚓︎
{
"policies": {
"Locale": {
"Default": "fr"
},
"Cookies": {
"AcceptThirdParty": "never",
"Behavior": "reject-tracker-and-partition-foreign",
"ExpireAtSessionEnd": true,
"Locked": false
},
"DisablePocket": true,
"DisableTelemetry": true,
"DisableFirefoxStudies": true,
"DisableFirefoxAccounts": true,
"OfferToSaveLogins": false,
"OverrideFirstRunPage": "",
"EnableTrackingProtection": {
"Value": true,
"Locked": true,
"Cryptomining": true,
"Fingerprinting": true
},
"Permissions": {
"Location": {
"BlockNewRequests": true
}
},
"DisableProfileImport": true,
"ManagedBookmarks": [
{
"toplevel_name": "Lycée"
},
{
"url": "https://jean-monnet-annemasse.ent.auvergnerhonealpes.fr/",
"name": "Site du lycée"
},
{
"url": "https://0741476c.index-education.net/pronote/?fd=1",
"name": "Pronote"
},
{
"url": "https://gervais.forge.apps.education.fr/nird/URL_Lycee/",
"name": "Ressources utiles diverses"
}
],
"DisplayBookmarksToolbar": "always",
"Extensions": {
"Install": [
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"
],
"Uninstall": [
"amazon@search.mozilla.org",
"bing@search.mozilla.org",
"google@search.mozilla.org"
]
},
"ExtensionSettings": {
"uBlock0@raymondhill.net": {
"installation_mode": "force_installed",
"install_url": "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"
}
},
"3rdparty": {
"Extensions": {
"uBlock0@raymondhill.net": {
"adminSettings": {
"advancedSettings": [
[
"disableWebAssembly",
"true"
],
[
"uiTheme",
"dark"
]
],
"advancedUserEnabled": "true",
"externalLists": [
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt",
"https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt"
],
"importedLists": [
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt",
"https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt"
],
"dynamicFilteringEnabled": "true",
"dynamicFilteringString": "* google-analytics.com * block\n* googletagmanager.com * block\n* * 3p-script block*\n* * 3p-frame block",
"popupPanelSections": "31",
"hostnameSwitchesString": "no-large-media: behind-the-scene false\nno-csp-reports: * true",
"userFilters": "! fonts\n!*$font,third-party\n!*$font,third-party,domain=~example.com|~example2.net\n\n! all stackoverflow annoying consent banners\n##.js-consent-banner\n\n! some annoying banners\n##.banner > [href]\n",
"selectedFilterLists": [
"ublock-quick-fixes",
"user-filters",
"ublock-filters",
"ublock-badware",
"ublock-privacy",
"ublock-abuse",
"ublock-unbreak",
"adguard-generic",
"adguard-mobile",
"easylist",
"easyprivacy",
"urlhaus-1",
"adguard-annoyance",
"fanboy-annoyance",
"ublock-annoyances",
"plowe-0",
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt",
"https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt"
]
}
}
}
},
"FirefoxHome": {
"Search": false,
"TopSites": false,
"SponsoredTopSites": false,
"Highlights": false,
"Pocket": false,
"SponsoredPocket": false,
"Snippets": false,
"Locked": false
},
"HardwareAcceleration": false,
"SearchEngines": {
"Add": [
{ "Name": "StartPage",
"URLTemplate": "https://startpage.com/do/search?q={searchTerms}",
"IconURL": "https://www.startpage.com/sp/cdn/favicons/favicon--light.ico",
"Description": "StartPage",
"Alias": "StarPage"
},
{
"Name": "DuckDuckGo",
"URLTemplate": "https://duckduckg.com/q={searchTerms}",
"Method": "GET",
"IconURL": "https://duckduckgo.com.org/favicon.ico",
"Alias": "duckduckgo",
"Description": "Duck Duck Go",
"SuggestURLTemplate": "https://duckduckg.com/q={searchTerms}"
}
],
"Remove": [
"Amazon",
"Twitter"
],
"Default": "StartPage"
}
}
}
Fichiers pour dconf⚓︎
-
config_xreader -
config_xed -
config_nemo config_cinnamon_menupour le panneauText Only[/] app-menu-label='Menu ' enabled-applets=['panel1:left:0:menu@cinnamon.org:0', 'panel1:left:1:separator@cinnamon.org:1', 'panel1:left:2:grouped-window-list@cinnamon.org:2', 'panel1:right:0:systray@cinnamon.org:3', 'panel1:right:1:xapp-status@cinnamon.org:4', 'panel1:right:2:notifications@cinnamon.org:5', 'panel1:right:3:printers@cinnamon.org:6', 'panel1:right:4:removable-drives@cinnamon.org:7', 'panel1:right:5:keyboard@cinnamon.org:8', 'panel1:right:6:favorites@cinnamon.org:9', 'panel1:right:7:network@cinnamon.org:10', 'panel1:right:8:sound@cinnamon.org:11', 'panel1:right:9:power@cinnamon.org:12', 'panel1:right:10:calendar@cinnamon.org:13', 'panel1:right:11:cornerbar@cinnamon.org:14'] [settings-daemon/peripherals/keyboard] numlock-state='on'
Lanceurs⚓︎
-
Signalement des dysfonctionnements
Signalement de Panne ou Problème.desktopText Only[Desktop Entry] Name=Signalement de Dysfonctionnement Name[fr_FR]=Signalement de Panne ou Problème Exec=/usr/share/jeanmo/ticket.sh Exec[fr_FR]=/usr/share/jeanmo/ticket.sh Comment= Comment[fr_FR]= Terminal=false PrefersNonDefaultGPU=false Icon=bug-buddy Icon[fr_FR]=bug-buddy Type=Application Type[fr_FR]=Application -
Consultation / suivi des résolutions
Consultation des Tickets d'Incident.desktop -
Pronote web pour les profs
Pronote Web PROF.desktop(sinon ôterprofesseurs.htmlde l'URL, pourPronote Web.desktop) -
Pour faciliter la déconnexion avec une icône directement sur le Bureau,
SE DÉCONNECTER.desktopText Only[Desktop Entry] Name=SE DÉCONNECTER Exec=cinnamon-session-quit --logout --no-prompt Comment= Terminal=false PrefersNonDefaultGPU=false Icon=xfsm-logout Type=ApplicationLes suivants sont dans le dossier
PROBLÈMES TECHNIQUESsur le Bureau -
Pour accéder à la page de liens externe
URL Ressources Web.desktop -
Pour récupérer ses partages
Récupération des partages.desktop, si l'on en a démonté involontairement -
Réparer Firefox.desktoppas forcément encore utile...
Ancienne installation⚓︎
Archive de l'installation précédente
Il s'agit des notes sur l'intallation précédente, conservées pour mémoire. Elles datent du 24 juin 2024 (salle A208) + mise à jour décembre 2024 (salle des profs essentiellement), puis d'avril 2025.
-
Si installer une distribution GNU/Linux ne pose le plus souvent aucun souci, les contraintes supplémentaires nous ont bien compliqué la tâche ici (utilisateurs inscrits sur l'AD Windows local, qui doivent récupérer leurs partages réseau avec les bons droits, etc.), d'où ces notes !
-
Installation double-boot en salle A208, globalement validée après quelques ajustements par notre utilisation pendant une année en spé NSI. L'image de la partition est déployée PC par PC, avant de les renommer et de les intégrer à l'AD. Windows sur le SSD Nvme intégré d'origine + Linux Mint 20.3 sur le SSD SATA ajouté (
/dev/sda1). Pour booter sous Linux, appuyer de manière répétée sur [↑] au démarrage jusqu'à accéder au menu GRUB, puis valider la première entrée. Alternative : appuyer de manière répétitive sur [F9], puis choisir directement si c'est proposé, ou via « À partir du fichier / Système... / EFI / ubuntu / grubx64.efi ». -
Installation en mono-boot, en salle des profs et C208. Il s'agit de PC anciennement en salle 28 destiné(s) à la déchetterie, des HP 6200, i5 Gen. 2 à 4 cœurs. On a doublé la RAM (portée à 8 Go) en utilisant celle de 2 PC et remplacé le disque dur par un SSD SATA.
-
Pour ces installations Linux :
-
Distribution Mint 20.3 Cinnamon en A208. Démarrage par défaut sans délai (1 sec.) sous Windows, sinon répéter l'appui sur [↑] au démarrage pour accéder au menu GRUB et choisir (première entrée en haut) Linux Mint. Des affichettes expliquent cela ainsi que la manière de revenir à Windows si besoin (+ rappel en fond d'écran sous Mint)...
Version plus récentes en mono-boot, Mint 22 Cinnamon (mise à jour sans souci vers 22.1). Pas de modification majeure observée.
À noter que le double-boot avec Windows par défaut interdit la mise à jour automatique avec réveil programmé à une heure donnée (et éventuelle extinction derrière). -
Un unique utilisateur local
adminlinuxpeut utilisersudo, les autres sont identifiés sur l'AD du lycée, avec leurs identifiants habituels (ils retrouvent leurs partages réseau, sur le Bureau). Possibilité de créer un compte locallambdaen secours sur quelques PC en cas de panne réseau, pour les examens type Épreuves Pratiques NSI. -
Les PC sont nommés
SALLE-L01,SALLE-L02, etc. ainsi queSALLE-LPROFpour le bureau du prof (en remplaçantSALLEparA208,33ou autre), avecLpour Linux. Et en salle des profs,SPROF-L01, etc. Le tout reste ainsi cohérent avec le reste du réseau. -
Un utilisateur de base a suffisamment de droits pour installer une autre disposition de clavier, utilisable s'il la connaît par cœur (ou s'il connecte son clavier physique en USB), il aura alors un drapeau dans la partie droite du panneau en bas d'écran, pour switcher entre les configurations installées.
-
On peut faire les mises à jour manuelles en étant connecté comme utilisateur de base, même en mode « non automatique », à condition de saisir le mot de passe d'
adminlinux.
-
-
À revoir ?
-
Les mises à jour n'étaient pas faisables par un utilisateur lambda, elles prennent systématiquement du retard et c'est mal. Pour l'installation en salle des profs, on est passé à la mise à jour automatique. Avec le risque de tout casser si l'une d'elles pause problème. Pas de souci en pratique, au bout de plusieurs mois...
-
Petit souci de clé obsolète signalé lors des mises à jour (?) Ne semble plus d'actualité sur les versions récentes, comme Mint 22.
-
Il faudrait sécuriser le GRUB, dans l'absolu.
-
Chromium demande un mot de passe (annuler 3 fois suffit, mais c'est pénible).
-
Firefox semble perdre ses paramétrages suite à des changements de version parfois, voire ne plus se lancer correctement (dans ce cas, effacer
~/.mozilla). Du coup, on préférera laisser le profil vierge en attendant mieux, mais on se retrouvera avec Google comme moteur par défaut et autres trucs pas terribles. -
Le port 80 reste bloqué pour les utilisateur non sudoers et les autres ports semblent bloqués par le pare-feu, donc c'est gênant pour réaliser des serveurs web locaux (toujours d'actualité ? À vérifier... Souci pour les programmations de serveur web en NSI uniquement.)
-
Il serait bien de rationnaliser la remontée et le suivi des bugs et demandes, surtout si l'on élargit le public utilisateur (ex. en salle des profs), sans que Pascal Fayan ne soit dérangé à tort (service en ligne ? simple fichier tableur comme Pascal utilise ? autre ? En salle des profs, on tente un document partagé en ligne, avec pointeur sur le Bureau + lien affiché avec son QRcode, pour pouvoir y accéder depuis chez soi ou si le PC est HS...) En même temps, si l'on n'a du Linux qu'en A208 plus quelques PC isolés et que ça dure 1-2 ans max. encore, ça n'est pas forcément crucial...
-
Maintenant que les PC peuvent déclarer leur nom auprès du serveur DNS de l'AD, on devrait pouvoir scripter une installation de logiciel, ou des modifications de fichiers, depuis un PC unique (via
ssh, voire Ansible par exemple). À explorer ? -
Installer VS Codium en A208 ? Avec quels add-ons ? Attention à ne pas trop alourdir les répertoires perso. locaux et vérifier que le profil déposé dans
/etc/skel/est bien transféré aux utilisateurs... Idem pour LaTeX (TeXlive + TexStudio par exemple), notamment en salle des profs ?
-
Installation complète de l'OS⚓︎
Contexte
On a opté en A208 (contraints et forcés) pour un double-boot, avec un choix par défaut sous Windows (paramétré quasi instantané, pour ne pas perturber les utilisateurs de base). Du coup, on a des soucis pénibles, les mises à jour de Windows viennent parfois tout casser... Sinon, la contrainte était d'identifier les utilisateurs via leur compte réseau habituel validé par l'AD (Active Directory, service réseau Windows) et chacun devait retrouver automatiquement ses partages (« lecteurs ») habituels (personnel, de la classe, échange-élèves ou échange-profs, etc.). On a ajouté un utilisateur local privilégié (adminlinux), qui seul a la possibilité d'administrer le PC. On a choisi d'installer Linux Mint sous Cinnamon, pour faciliter la transition depuis Windows.
-
Lancer l'installation depuis le lanceur sur le Bureau de la version live de Mint.
-
Clavier
French (alt), codecs multimedia à installer. Ne pas démonter le lecteur si c'est proposé, c'est notre clé d'installation. Compte localadminlinuxcréé avec le mot de passe de-la-mort-qui-tue. -
Au reboot, ajout des dépôts locaux, update. On peut poursuivre d'autres opérations pendant la mise à jour (et les installations qui suivent).
-
Installation via la logiteque en évitant au maximum les Flatpack trop lourds (ou avec
apt install ...), dontnumlockx,traceroute,ssh,chromium,pdfarranger,xournal,loook,pinta,gimp,inkscape,vlc,geogebra,idle,thonny,pyzo,sqlitebrowser,logisim,meld,diffpdf,codeblocks,audacity,geany,libreoffice-dmaths(pas pour Mint 22, pose des soucis sur les versions récentes de LibreOffice, à installer à la main en version plus récente, ou en v5.4 puis en choisissant d'activer le Dispatcher),ttf-mscorefonts-installer(?),conky(remplacé parconky-stdpour Mint 22). Puis, en récupérant le.debdepuis son site au lieu du Flatpack,filius(avecsudo dpkg -i filius-etc.deb).
Puis pour l'AD (peut être fait plus tard)adcli,krb5-user,libnss-sss,libpam-sss,ntp,realmd,samba,sssd,sssd-tools. Pourkrbd5-user, en mode interactif lors de l'installation, saisir le nom de royaume en majusculesJEAN-MONNET.LOCAL.
Et si l'on a un PC similaire dont on souhaite s'inspirer ?
On peut aussi récupérer une liste des paquets installés depuis un autre PC pour gagner du temps (avec dpkg --get-selections ou apt list), voire des dossiers de configuration de logiciels.
-
Installer
VSCodium? Avec quelles extensions ?... Test de VSCodium Insiders, gros Flatpak, en salle des profs. À suivre... -
Ajouter dans le panneau en bas d'écran l'applet de capture d'écran, à télécharger d'abord.
-
Sur le Bureau, raccourcis vers le site Pronote (
browse https://0741476c.index-education.net/pronote/professeur.htmlen salle des profs ou sans/professeurs.htmlailleurs ; le client Pronote fonctionne-t-il sous Wine ?) et en salle des profs vers un fichier partagé en ligne pour gérer de manière simple les bugs et autres soucis. -
Via le menu, Applications au démarrage, enlever Blueman, Welcome, voire NVidia.
-
Paramètres système / Économiseurs d'écran ou Gestion de l'alimentation, pour éviter le verrouillage à la mise en veille.
-
Menu / Écran de connexion, pour activer le verrouillage du pavé numérique (si ça n'apparaît pas, vérifier que
numlockxest installé), permettre une connexion manuelle, cacher la liste des utilisateurs, interdire l'utilisateur invité. -
Relevés système (en bas à droite), ajouter les paquets de langue, pilotes de périphériques (dont propriétaires NVidia suivant le matériel), codecs multimédia, si besoin. Ignorer Timeshift.
-
Pages d'accueil des navigateurs (Pronote, site du lycée), moteurs de recherches par défaut (ex. Qwant, StartPage), vider l'historique, cocher « demander où télécharger ». Ajouter l'extension uBlock Origin. Sauf que vu les soucis sous Firefox, on a opté en attendant mieux pour ne pas utiliser de paramétrage « maison » pour l'instant...
-
Ajout d'icônes sur le panneau en bas d'écran (Menu Mint pour trouver chaque application, puis clic-droit / Ajouter au panneau) : LibreOffice Writer (voire Calc, Impress), Navigateurs, Thonny...
-
Installer si besoin l'imprimante de la salle, ex. en salle des profs
socket://172.16.10.244:9100(il semble y avoir des soucis pour imprimer à partir des PC Linux ces derniers temps, ça ne passe pas ou c'est très très lent : à investiguer... Au cas où, le masque est255.255.255.0et la passerelle172.16.10.254, le serveur estmonnet-dc1... -
En double-boot, éditer
/etc/default/grub, par exempleGRUB_DEFAULT=2pour lancer Windows par défaut si c'est l'entrée n°2,GRUB_TIMEOUT = 1après 1 seconde. Puissudo update-grub. En mono-boot, ça semble OK avec un délai nul, par défaut. -
Dans
/etc/systemd/resolved.conf,DNS=192.168.0.97(sans espace autour du=) etDomains=jean-monnet.local. Puissudo systemctl restart systemd-resolved. Testerhost jean-monnet.local(qui renvoie192.168.0.140et0.97). -
Pour que les noms des PC soient résolus par le serveur DNS local (AD) :
- Déposer le script
update_dns_data.sh(voir annexe), rendu exécutable et lisible par tous, dans/usr/share/jeanmo/(répertoire à créer). - Créer un fichier
/etc/rc.localet lui donner les bons droits et propriétaire (chown root:root /etc/rc.localetchmod 700 /etc/rc.local), qui exécutensupdateavec en entrée le retour du script précédent (là aussi, voir en annexe).
- Déposer le script
-
Installer les paquets spécifiques à l'AD si ça n'est pas fait (voir plus haut), puis intégrer le PC à l'AD :
realm join -v --user=adminjm --client-software=sssd jean-monnet.local, voir les détails dans la partie Restaurer une partition (mot de passe de l'admin réseau AD, puis celui d'adminlinux). En cas de souci (non rencontré dans notre cas),sudo systemctl stop avahi-daemon. -
Pour ne pas avoir à préciser
@jean-monnet.localderrière les identifiants, éditer/etc/sssd/sssd.confet modifier, à la fin dans la partie[domain/jean-monnet.local]:case_sensitive = preserving,fallback homedir = /home/%u_et pas%u@%dà la fin__, ainsi queuse-fully-qualified-name = Falseau lieu deTrue. Puis redémarrer le service,sudo systemctl restart sssd. Vérifier avecid gervais.j(ou sur un autre compte) qu'un utilisateur AD est bien reconnu, ce qui est le cas si ses informations sont listées. -
Pour les partages réseau : copier le script (voir annexe)
partages.shdans/usr/share/jeanmo, lui donner les droits en exécution et lecture pour tous (chmod a+rx /usr/share/jeanmo/partages.sh). Le centraliser ainsi permet une mise à jour pour tout utilisateur plus facile, si besoin.
Créer un lanceurPartages.desktop(fichier texte, voir annexes), puis le placer dans/etc/skel/.config/autostart/. On peut aussi le créer en créant un lanceur vers la commande en mode graphique, via le Menu et Applications au démarrage, puis le récupérer dans~/.config/autostart. Penser à placer.conkyrcdans/usr/share/jeanmo. -
Pour démonter explicitement les partages à la fermeture (nécessaire ??), dans
/etc/lightdm/lightdm.confajouter la règlesession-cleanup-script=/usr/share/jeanmo/demontages.shen déposant le fichier correspondant (voir annexe) au bon endroit, avec les droits d'exécution et de lecture pour tous. -
Pour la création automatique du répertoire perso local, éditer
/etc/pam.d/common-sessionet ajouter, entresession required pam_unix.soetsession optional pam_sss.so:session required pam_mkhomedir.so skel=/etc/skel umask=0077. Ce masque assure les permissions en700, soitrwx------.
Copier ce qu'on veut dans/etc/skelcomme modèle pour les nouveaux répertoires personnels locaux, notamment~/.mozilla(sauf si l'on préfère un profil vierge pour Firefox à cause des problèmes rencontrés après une mise à jour),~/Bureauoù l'on aura déposé un lanceur pour récupérer les partages à nouveau au cas où,.config/chromium,.config/dconf,.config/gtk-*,.config/cinnamon,.config/Thonny... Réaffecter à tous comme propriétaire et grouperoot:chown -R root:root /etc/skel/.
Effacer.config/gtk-3.0/bookmarks(car sinon les raccourcis pour Nemo (Images...) sont nommés en dur avecadminlinuxet ne fonctionnent pas ; alors qu'en l'absence de ce fichier, il est recréé automatiquement pour l'utilisateur). -
On peut tester la connexion d'un utilisateur de l'AD, par exemple dans un terminal avec
su - gervais.j(déconnexion avec [CTRL]+[D]). -
Pour l'authentification, éditer
/etc/lightdm/lightdm.conf.d/70-linumint.confgreeter-show-manual-login=true
user-session=cinnamon
greeter-setup-script=/usr/bin/numlockx on
Cette dernière commande active le pavé numérique dès la connexion.
Si l'on n'a pas d'installation de paquets ou autre en cours d'exécution, sachant que cela nous déconnecte, redémarrer le service avecsudo systemctl restart lightdm, puis tester la connexion en mode graphique. -
Pour l'affichage du nom du PC, etc. en fond d'écran, placer le fichier de configuration (voir annexe)
.conkyrcdans le dossier/usr/share/jeanmo/. Le lancement deconkyavec ce fichier de paramètres est intégré au scriptpartages.shlancé automatiquement au démarrage. Du coup, il est un peu mal nommé, on fera mieux la prochaine fois. -
Mises à jour et extinction automatiques, via
cron: créer (commeadminlinuxavecsudo) des fichiers textes dans/etc/cron.dpour chaque tâche à automatiser. Par exemple, pour arrêter le PC tous les jours à 18h, et 7h, le mettre à jour tous les jours à 17h40 et 6h40 (du coup, paramétrer dans le BIOS/UEFI le démarrage auto les jours ouvrables à 6h30 pour être sûr que les mises à jour sont bien effectuées) :/etc/cron.d/shutdownavec dedans la ligne suivante :
0 20 * * * root /usr/sbin/shutdown -h +5 "Extinction dans 5 min. () shutdown -c dans un terminal pour annuler)" && notify-send-all "Extinction dans 5 min. (shutdown -c dans un terminal pour annuler)"+ idem avec0 7 * * *.../etc/cron.d/updateavec dedans :
40 17 * * * root apt update && apt upgrade -y && apt clean && apt autoremove -y && flatpack update -y && touch /UPDATE_OK || touch /UPDATE_EN_ECHEC+ idem à40 6 * * *...
Remarque :notify-send-allest un script fourni en annexe, pour envoyer le message à tout utilisateur connecté.
-
TODO Utiliser un serveur cache proxy pour
apt. _Attention à bien utiliser un serveur distinct pour chaque distribution, si l'on devait en utiliser plusieurs (Debian \(\ne\) Ubuntu...). Source : https://doc.ubuntu-fr.org/apt-cacher-
Sur le serveur
- Installer les paquets
apt-cacher(choisir le mode démon) etapache2. - Éditer en
sudole/etc/apt-cacher/apt-cacher.conf, pour modifier enallowed_hosts = *. - Relancer le service
sudo service apt-cacher start - Tester, dans un navigateur, à
http://adresse_du_serveur:3142 - Mettre en cache les paquets déjà présents sur le serveur
sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives
ou en cas de souci
sudo /usr/share/apt-cacher/apt-cacher-import.pl -r -R /var/cache/apt/archives - Si la connexion internet nécessite un proxy, éditer
/etc/apt-cacher/apt-cacher.confavec
http_proxy=hostname:port
use_proxy=1
http_proxy_auth=username:password
use_proxy_auth=1 - Faire démarrer automatiquement ce PC pour qu'il fasse ses mises à jour un peu plus tôt que les autres, ex. 1/4h.
- Installer les paquets
-
Sur les clients
-
Méthode conseillée, fonctionne même si le serveur
apt-cachern'est pas disponible (ordis portables, serveur arrêté...)
Éditer/etc/apt/apt.conf.d/01proxyavec dedans
Acquire::http::Proxy "http://adresse_du_serveur_apt-cacher:3142";puis recharger la liste des paquetssudo apt update. -
Méthode bof
Éditer/etc/apt/sources.listet insérer l'adresse du serveur, par exemple
deb http://archive.ubuntu.com/ubuntu/ hardy main restricteddevient
deb http://adresse_du_serveur_apt-cacher:3142/archive.ubuntu.com/ubuntu/ hardy main restricted
-
-
Scripts
Les annexes pour le code des différents scripts et fichiers de paramétrage utilisés sont quasi-identiques à ceux de la nouvelle installation et n'ont pas été conservés dans leur version d'origine.
Restaurer/ajouter un PC⚓︎
Un PC, voire juste une partition, à partir d'une image disque.
Outils utilisés
En juin 2024, les images ont été réalisées avec REDORescue 4.0.0 (cette distribution utilise partclone pour gérer les images disques) et son évolution RescueZilla. Elles sont stockées sur une clé bootable, différente de celle de cette distribution dédiée aux sauvegardes et à la maintenance de base des PC. L'image est celle d'un PC nommé Lnn et pas L06 par exemple, qui n'est pas inscrit à l'AD. Il faut donc renommer les PC après redéploiement.
Pas d'utilisation de FOG testée, pour l'instant.
Cela faciliterait sans doute le déploiement des images sur de nombreux PC.
Mais l'automatisation semble moins poussée pour des stations Linux que Windows
(un peu tristre pour un outil en Linux ; à vérifier, est-ce encore vrai ?)
-
Booter sur la clé REDORescue ou RescueZilla (en A208 et salle des profs, [Esc] ou directement [F10] pour changer l'ordre de démarrage), seule branchée sur le PC.
-
Juste après le menu de REDORescue / RescueZilla, brancher la seconde clé USB contenant l'image.
-
Choisir Restore, sélectionner la clé puis l'image, puis la partition à restaurer (ex.
/dev/sda1pour la partition Linux en A208) en vérifiant bien que c'est la bonne, avant de lancer la restauration.
Sur REDORescue, le clavier est en QWERTY, maissetxkbmap frdans le terminal permet de repasser en AZERTY. -
Rebooter (3è icône sur le panneau / barre en bas d'écran sur REDORescue). Retirer les clés USB, choisir Linux au démarrage si l'on est en double-boot (appuis répétés sur [↑]). Se connecter comme
adminlinux. -
Renommer le PC :
-
sudo hostnamectl set-hostname A208-L06(ou autre), qui met à jour/etc/hostname. -
Éditer (ex.
sudo nano ...)/etc/hostspour mettre à jour le nom du PC (2 modifications). -
Pour avoir un numéro d'identification unique (important pour l'enregistrement à l'AD, apparemment),
sudo rm /etc/machine-idsuivi desudo systemd-machine-id-setup.
-
-
Inscrire le PC à l'AD :
-
sudo realm join -U adminjm jean-monnet.local, avec le mot de passe de l'utilisateur admin du réseau (adminjm, voir Pascal F. [admin AD et réseau] si besoin, ou notre compte réseau habituel commegervais.jsi Pascal nous a donné les droits pour inscrire un PC à l'AD), puis celui d'adminlinux. -
Cette commande modifie certains fichiers de paramètres qu'il faut adapter. Éditer
/etc/sssd/sssd.confpour ne pas avoir à spécifier le domaine avec le nom des utilisateurs@jean-monnet.local:fallback homedir = /home/%u(et pas%u@%dà la fin),use-fully-qualified-name = False(au lieu deTrue).
-
sudo service sssd restart(ousudo systemctl restart sssd, qui doit être équivalent). -
On peut vérifier que tout est fonctionnel avec
id gervais.jpar exemple, cette commande listant les informations de l'utilisateur s'il est reconnu.
-
Créer une image d'un PC⚓︎
Créer une image disque de sauvegarde d'une partition Linux ou de tout le disque, à partir d'un PC déjà installé.
Outils
On travaille avec REDORescue / RescueZilla, là aussi, voir dans la partie précédente.
Penser à prévoir une clé USB assez grande (> 6 Go libres, à adapter au cas par cas) et avec un système de fichiers supportant les gros fichiers, comme extfat plutôt que fat32 limité à 4 Go par fichier.
-
Avant la copie d'éléments d'un compte utilisateur dans
/etc/skelqui sert de modèle aux répertoires utilisateurs qui seront créés, penser à purger les historiques de navigation et autres fichiers temporaires ou inutiles avant. -
Effacer les répertoires temporaires, désinstaller ce qu'on est sûr de ne plus utiliser.
-
Faire les mises à jour (rebooter pour vérifier que tout est OK si c'est demandé, à savoir si le noyau a été mis à jour).
-
Purger les comptes, sauf
adminlinux: Menu / Utilisateurs et Groupes permet de le faire, mais on n'a réussi qu'à les supprimer un par un (et ils restent visibles dans la liste, sur le moment). Est-il possible de faire ça plus rapidement ? L'étape suivante de suppression des dossiers semble laisser des traces sans cette manip, car si l'on re-connecte l'utilisateur, certains paramètres subsistent (impression infondée due à une erreur ??). Ou plutôt exécutersudo userdel --remove-home nom.ppour chacun (mais cela ne semble pas fonctionner dans un script) ?
Il faut encore effacer les répertoires personnels des utilisateurs du réseau, on passe par l'explorateur de fichiers, en allant dans/home/(clic droit / ouvrir comme administrateur), pour le faire, en prenant garde à ne pas sélectionner le répertoireadminlinuxou tout autre dossier que l'on souhaite épargner (ex. celui des collègues sur le PCLPROF). -
Sortir le PC de l'AD :
sudo realm leave jean-monnet.local. -
Renommer le PC en
SALLE-Lnn(oùSALLEvautA208par exemple) :-
sudo hostnamectl set-hostname A208-L06(ou autre nom, dontA208-LPROF), ce qui met à jour/etc/hostname. -
Éditer (ex.
sudo nano ...)/etc/hostspour mettre à jour le nom du PC (2 modifications).
-
-
Éteindre le PC. Booter sous REDOBackup / RescueZilla (voir partie « Restaurer une partition »), choisir Backup, puis la partition à sauvegarder et la cible (sur la seconde clé USB par exemple). Il est prudent de conserver l'image de la version précédente au cas où.
-
Attention, si l'on souhaite continuer à utiliser le PC utilisé pour créer l'image dans la foulée, ne pas oublier de renommer correctement le PC et de le ré-intégrer à l'AD (comme après la restauration d'une image disque, voir dans la partie dédiée).
Mémo / problèmes et solutions⚓︎
-
Impossible de se connecter au réseau ? (ou si l'on ne voit aucun partage réseau sur le Bureau, en utilisateur du réseau et pas
adminlinux)
Vérifier d'abord l'heure affichée par le PC. Si elle est incorrecte, c'est sûrement la cause. Sur des PC anciens, la pile CMOS peut-être à changer. En double-boot, le paramétrage par défaut de Linux est différent de celui de Windows (qui cale l'heure de la machine RTC sur l'heure local au lieu de la laisser à l'heure UTC). Du coup, quand on utilise Windows, ce dernier modifie l'heure de l'horloge interne pour se recaler et au boot suivant sous Linux, elle n'est plus correcte. Il suffit d'adopter la même convention sous Linux avectimedatectl set-local-rtc 1(en principe sans--adjust-system-clock; du coup, en sortie detimedatectl,RTC in local TZpasse àyes; on inverse la situation avec la valeur0). -
En A208 (double-boot), impossible de booter sous Linux Mint, même via [F9] et le choix de
grubx64.efipar exemple.
C'est le cas quand l'image de Windows a été redéployée via FOG, notamment. Il faut alors restaurer la petite partitionnvme0n1p1du disque Windows.
Autre piste : sous Windows, comme administrateur (ex.A208-X12\adminpc), après avoir branché sa clé contenant le bon fichier (ex. nomméeF:), recherchercmd, puis clic-droit / « exécuter comme administrateur » et enfin saisirbcdedit /import F:\a208-double-boot. La versiona208-windows-seuldevrait permettre de revenir au disque avec seulement Windows, par exemple si l'on ôtait le second disque (Linux). Ces fichiers avaient été créé avecbcdedit /export...
Au départ, il a peut-être été nécessaire d'exécuter depuis Windows, danscmdcomme admin,bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi(en cas de souci, idem avec/deletevalue, puisbcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi) ? -
En A208 (double-boot), on peut lancer Linux Mint via [F9] et le choix de
grubx64par exemple, mais le menu GRUB qui devrait apparaître en appuyant de manière répétitive sur la touche [↑] au boot n'apparaît pas.
Depuis Linux,efibootmgr -vindique une suite de code à 4 chiffres hexa. associés aux diverses entrées, le système les essayant dans l'ordre indiqué au démarrage. Ensuite,sudo efibootmgr -o xxxx,yyyy,zzzzpermet de choisir l'ordre voulu, en remplaçant lesx, etc. par les bonnes valeurs. On choisit celle(s) associée(s) àubuntuouEFI\ubuntu\grubx64.efiau départ, puis on peut conserver l'ordre existant pour les suivante. Au cas où, on peut désactiver une entrée avecsudo efibootmgr --bootnum xxx --inactive. -
Toujours en A208, certaines mises à jour de Windows semblent tout mettre en vrac (plus de boot, sous aucun des deux OS). Pas de solution satisfaisante trouvée, on retire le disque SATA (Linux), on redéploie l'image Windows via FOG et on fait notre deuil de Linux sur ce PC. Vivement qu'on bascule au mono-boot...
-
On veut mettre à jour le dossier modèle pour les comptes utilisateurs à venir,
/etc/skel.
Penser à purger les comptes utilisateurs existants (autres queadminlinuxbien sûr), si l'on veut que ces modifications soient appliquées à ces utilisateurs. Attention, cela efface aussi leurs répertoires perso. locaux (sur le PC, pas le partage perso. réseau nomméP:sous Windows), donc à utiliser en connaissance de cause. Sinon, un script Bash a déjà été écrit pour mettre certaines choses à jour, plutôt que d'effacer ces répertoires, il suffit de l'adapter.
En supposant qu'on a déposé dans le répertoire local letag.gzdu contenu du dossier/etc/skel/pris comme modèle, il suffit d'exécutersudo tar -xf skel.tar.gz -C /etc/qui écrasera la version existante.
Remarque : même si l'on ne les remplit pas, les répertoiresBureau,Téléchargements,Modèles,Public,Documents,Musique(sans s),ImagesetVidéosdoivent être présents, même vides, sinon (voir paramètres dans~/.config/user-dirs.dirs), l'utilitairexdg-user-dirs-updatechargé de franciser les noms de ces espaces ne les crée pas et le contenu du répertoire personnel s'affiche directement sur le Bureau. -
Firefox se bloque au lancement. Semble se produire après une mise à jour, qui serait intervenue avant que l'utilisateur ne se connecte pour la première fois. Serait-ce évitable en mettant à jour
/etc/skel/.mozillaà chaque nouvelle version de Firefox ??
En supprimante le dossier~/.mozillade l'utilisateur, il perd ses raccourcis et réglages perso. mais le problème est réglé, sur ce PC et pour cet utilisateur.