# Client

Les clients dans Edubuntu sont les postes de travail utilisés par les élèves et les enseignants pour accéder aux ressources éducatives fournies par le serveur. Ils offrent une interface conviviale pour l'utilisation des logiciels éducatifs, la création de contenu et la communication avec d'autres utilisateurs du réseau. Les clients peuvent également être configurés avec des outils de contrôle parental pour assurer une utilisation sûre et appropriée par les enfants. En outre, ils peuvent être utilisés pour collaborer sur des projets, accéder à des documents partagés et participer à des activités d'apprentissage interactives, contribuant ainsi à une expérience éducative enrichissante et collaborative.

# Création de l'image

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/TYpimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/TYpimage-png.png)

## **Présentation**

Ubuntu est l'une des distributions Linux les plus populaires et largement utilisées. Fondée en 2004 par Canonical Ltd., Ubuntu est basée sur Debian, une autre distribution Linux bien établie. Voici une présentation rapide de ses caractéristiques :

<div id="bkmrk-facilit%C3%A9-d%27utilisati"><div><div><div><div><div data-testid="conversation-turn-7"><div><div><div><div><div><div data-message-author-role="assistant" data-message-id="32f673e8-fb6f-4119-b98e-8ab0c8791971"><div>1. **Facilité d'utilisation** : Ubuntu est réputée pour sa convivialité et son interface utilisateur intuitive. Elle est conçue pour être accessible aux débutants en informatique tout en offrant suffisamment de puissance et de fonctionnalités pour les utilisateurs avancés.
2. **Cycle de publication régulier** : Ubuntu suit un calendrier de publication régulier, avec des versions majeures tous les six mois. Ces versions sont nommées d'après l'année et le mois de leur sortie, par exemple, Ubuntu 20.04 (sortie en avril 2020). Les versions LTS (Long Term Support) sont publiées tous les deux ans et bénéficient d'une prise en charge prolongée, ce qui les rend idéales pour les déploiements à long terme.
3. **Grande communauté et support** : Ubuntu bénéficie d'une communauté active et dynamique d'utilisateurs, de développeurs et de contributeurs. Cette communauté offre un support technique, des forums d'aide, des wikis et des ressources en ligne variées pour aider les utilisateurs à résoudre les problèmes et à tirer le meilleur parti de leur système Ubuntu.
4. **Logiciel libre et open source** : Ubuntu est entièrement basée sur des logiciels libres et open source, ce qui signifie que son code source est disponible pour examen, modification et redistribution par quiconque le souhaite. Cela garantit également que Ubuntu est exempt de coûts de licence et offre une transparence quant à son fonctionnement interne.
5. **Écosystème logiciel vaste** : Ubuntu offre un vaste écosystème logiciel, avec des milliers d'applications disponibles dans ses référentiels logiciels officiels. De plus, grâce à sa compatibilité avec les paquets Debian, il est possible d'accéder à encore plus de logiciels via d'autres sources.
6. **Prise en charge de matériel étendue** : Ubuntu est compatible avec une large gamme de matériel, ce qui en fait un choix polyvalent pour les ordinateurs de bureau, les serveurs, les ordinateurs portables et même les appareils embarqués.

</div></div></div></div></div></div></div></div></div></div></div></div></div>En résumé, Ubuntu offre une combinaison de convivialité, de stabilité, de sécurité et de liberté, ce qui en fait un choix populaire pour les utilisateurs individuels, les entreprises et les organisations du monde entier.

<p class="callout info">Site officiel [Ubuntu](https://ubuntu.com).</p>

## **Configuration minimale**

- Proc : i3
- RAM : 4Go (8Go recommandé)
- Une carte réseau

## **Création chroot**

Anciennement pour créer une image via Edubuntu/LTSP, c'était la commande `ltsp-build-client`, aujourd'hui, cette commande n'existe plus et est remplacer par `ltsp image`. Cette dernière est également utilisée pour remplacer `ltsp-update-image`.

Cependant, pour avoir un équivalent Edubuntu, avec un chroot pour l'image, il faut, dans cette version, télécharger l'image au préalable avec debootstrap. Vous devez donc l'installer via la commande :

```
apt install debootstrap
```

<p class="callout info">Les infos pour deboostrap sont *<span style="text-decoration: underline;">[ici](https://github.com/ltsp/ltsp/wiki/chroots)</span>*.</p>

Anciennement les images client edubuntu étaient stockées dans `/opt/ltsp/`, aujourd'hui, c'est dans `/srv/ltsp/`. En revanche, il est possible de modifier ce paramètre afin de rester identique à l'ancienne version LTSP : `ltsp --base-dir=`.

```
cd /srv
mkdir ltsp
cd ltsp
```

On peut à présent créer notre image :

```
debootstrap <nom version OS> <nom image>
```

Par exemple pour Ubuntu 22.04 :

```
debootstrap jammy edubuntu
```

<p class="callout info">Anciennement : `ltsp-built-client` </p>

Attention l'image peut prendre un certain temps à être téléchargée.

Une fois le téléchargement terminé, l'image est créée.

On peut alors entrer dans l'image via chroot :

```
chroot edubuntu
```

## **Configuration chroot**

Une fois dans l'image, la première chose à faire est de monter le répertoire proc et sys :

```
mount -t proc /proc proc
mount -t sysfs /sys sys
```

<p class="callout info">Monter /proc et /sys est indispensable pour donner accès aux informations système dans le chroot.  
Cela permet à l'environnement de l'image d'interagir avec le noyau linux et de fonctionner comme un vrai système.</p>

Ensuite, il faut mettre à jour l'image, et ajouter les manquants :

Mise à jour du noyau :

```
apt install --no-install-recommends linux-generic initramfs-tools
```

Faciliter la gestion des paquets

```
apt install software-properties-common
```

Ajouter les sources LTSP

```
add-apt-repository ppa:ltsp
```

Ajout des depots libres

```
add-apt-repository universe
add-apt-repository multiverse
```

Actualisation des dépots et installation LTSP

```
apt update && apt upgrade
apt install --install-recommends ltsp
```

<p class="callout info">L'image créé est entièrement en <span style="text-decoration: underline;">*anglais*</span>, il faut donc reconfigurer la langue du système et du clavier via les commandes :</p>

```
dpkg-reconfigure locales
dpkg-reconfigure keyboard-configuration
```

Nous allons maintenant installer l'environement de bureau KDE (kubuntu-desktop) le gestionnaire de login (lightdm) firefox etc :

```
apt install aptitude nano kubuntu-desktop kdeedu language-pack-kde-fr lightdm lightdm-gtk-greeter firefox firefox-locale-fr
```

Il faut également installer et configurer Epoptes pour les clients, et facilité l'assistance ensuite :

```
apt install epoptes-client
epoptes-client -c
```

Le paquet cups-client nous ai utile pour la gestion des copieurs :

```
apt install cups-client
```

## **Création .img**

Une fois satisfait de vos changement, a tout moment, vous pouvez quitter l'image avec la commande :

```
exit
```

Pour appliquer les changement et regénérer une image pour le PXE, il suffit d'utiliser la commande :

```
ltsp image edubuntu && ltsp initrd && ltsp ipxe && ltsp nfs
```

# LDAP

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/FHqimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/FHqimage-png.png)

## **Présentation**

OpenLDAP est une implémentation open source du protocole LDAP (Lightweight Directory Access Protocol), un protocole standard utilisé pour accéder et gérer des annuaires d'informations. Voici une présentation de ses caractéristiques principales :

1. **Service d'annuaire** : OpenLDAP fournit un service d'annuaire, qui est une base de données hiérarchique utilisée pour stocker des informations sur les utilisateurs, les groupes, les ressources réseau et d'autres entités dans un réseau informatique.
2. **Protocole LDAP** : OpenLDAP implémente le protocole LDAP, qui permet aux applications et aux clients d'accéder et de manipuler les données stockées dans l'annuaire. LDAP est largement utilisé dans les environnements informatiques pour l'authentification, l'autorisation, la recherche d'informations et d'autres opérations liées à la gestion des identités.
3. **Open Source et Gratuit** : OpenLDAP est distribué sous une licence open source (généralement la licence OpenLDAP Public License) et est gratuit à utiliser et à distribuer. Cela permet aux organisations de déployer des services d'annuaire sans frais de licence.
4. **Sécurité** : OpenLDAP prend en charge divers mécanismes de sécurité pour protéger les données stockées dans l'annuaire, y compris l'authentification des clients, le chiffrement des communications et le contrôle d'accès basé sur des politiques.
5. **Extensibilité** : OpenLDAP est hautement extensible, ce qui signifie qu'il peut être étendu pour prendre en charge de nouveaux schémas de données, des mécanismes d'authentification personnalisés et d'autres fonctionnalités spécifiques aux besoins de l'organisation.
6. **Interopérabilité** : OpenLDAP est compatible avec d'autres implémentations LDAP et peut interagir avec une large gamme d'applications et de services qui prennent en charge le protocole LDAP. Cela permet d'intégrer facilement OpenLDAP dans des environnements informatiques existants.
7. **Administration et Gestion** : OpenLDAP est livré avec des outils d'administration et de gestion qui facilitent la configuration, la surveillance et la maintenance de l'annuaire LDAP.

En résumé, OpenLDAP est une solution puissante et flexible pour la gestion des identités et des ressources dans un réseau informatique. En tant que service d'annuaire open source, il offre une alternative économique et évolutive aux solutions d'annuaire propriétaires.

## **Installation**

L'installation du client LDAP est un peu plus complexe que sur le serveur

L'ajout des paquets via la commande :

```
apt install libpam-ldap ldap-utils
```

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/aZNimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/aZNimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/zPzimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/zPzimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/y3pimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/y3pimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Ariimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Ariimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/hdyimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/hdyimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/YL8image-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/YL8image-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/8Jnimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/8Jnimage-png.png)

Il faut ensuite ajouter les paquets suivant :

```
apt install nscd nslcd
```

Identique au package précédent

## **Configuration**

Comme pour le serveur, il faut éditer le fichier suivant :

```
nano /etc/ldap/ldap.conf
```

```shell
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=e-ecole,dc=org
URI     ldap://192.168.1.1

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt
```

Une fois cela fait, la commande `ldapsearch -x` devrait donner des résulat similaire au serveur.

Un autre fichier à éditer :

```
nano /etc/nsswitch.conf
```

```shell
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd ldap
group:          files systemd ldap
shadow:         files ldap
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
```

Enfin, si un skel (modèle de session) doit être utilisé, il faut le préciser via le fichier :

```
nano /usr/share/pam-configs/mkhomedir
```

```shell
Name: Create home directory on login
Default: no
Priority: 0
Session-Type: Additional
Session-Interactive-Only: yes
Session:
        required                        pam_mkhomedir.so skel=/etc/skel umask=0022
```

Une fois le fichier éditer, il faut mettre à jour la configuration :

```
pam-auth-update
```

et cocher les options comme suit :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/nC5image-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/nC5image-png.png)

La partie configuration des fichiers est terminée, il faut maintenant actualiser :

```
service nscd restart
service nslcd restart
```

Pour vérifier si la configuration fonctionne, utiliser la commande :

```
getent passwd <login user ldap>
```

<p class="callout warning">Si vous avez un retour, c'est que la configuration fonctionne, autrement, c'est qu'il vous manque quelque chose.</p>

Une fois la configuration terminée, il suffit de quitter via `exit`, et update l'image via `ltsp image edubuntu`.

# Logiciels

## **Linux**

#### **Packages**

```
apt install brasero bleachbit wine libwine pinta audacity asunder soundconverter handbrake ffdiaporama ttf-mscorefonts-installer openjdk-18-jdk gthumb flash eog asunder freeplane cheese gparted gcompris* gcompris-qt libreoffice-help-fr libreoffice-l10n-fr hyphen-fr ntp tuxtype tuxpaint tuxmath scratch stellarium gamine kdeedu colobot gimp inkscape imagemagick openboard apt-transport-https curl unzip wget webcamoid scratch
```

#### **Onlyoffice**

```
mkdir -p -m 700 ~/.gnupg
gpg --no-default-keyring --keyring gnupg-ring:/tmp/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
chmod 644 /tmp/onlyoffice.gpg
chown root:root /tmp/onlyoffice.gpg
mv /tmp/onlyoffice.gpg /usr/share/keyrings/onlyoffice.gpg
echo 'deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main' | tee -a /etc/apt/sources.list.d/onlyoffice.list
apt update
apt-get install onlyoffice-desktopeditors
```

#### **Google Earth**

```
wget https://dl.google.com/dl/linux/direct/google-earth-pro-stable_7.3.6_amd64.deb
dpkg -i google-earth-pro-stable_7.3.6_amd64.deb
```

#### **Brave**

```
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"| tee /etc/apt/sources.list.d/brave-browser-release.list
apt update
apt install brave-browser
```

#### **Celestia**

```code
wget -qO - https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_22.04/Release.key | apt-key --keyring /etc/apt/trusted.gpg.d/celestia-obs.gpg add -
echo "deb https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_22.04/ ./" | tee /etc/apt/sources.list.d/celestia-obs.list
apt update
apt install celestia
```

## **Windows (wine)**

#### **TuxBot**

<span style="color: #3366ff;">[https://numerique53.ac-nantes.fr/ressources/tuxbot/index.php](https://numerique53.ac-nantes.fr/ressources/tuxbot/index.php)</span>

Une fois la version portable téléchargée, on la dépose sur le Partage Serveur et on décompresse :

```
cp /home/administrateur/téléchargements/mikado_1.0.7_portable.zip /Serveur/CDs/
cd /Serveur/CDs/
unzip mikado_1.0.7_portable.zip
```

#### **Leximage**

<span style="color: #3366ff;">[https://www.leplaisirdapprendre.com/portfolio/leximage-plus/](https://www.leplaisirdapprendre.com/portfolio/leximage-plus/)</span>

Une fois la version portable téléchargée, on la dépose sur le Partage Serveur et on décompresse :

```
cp /home/administrateur/téléchargements/leximage-plus-1.0.1-linux.tar.gz /Serveur/CDs/
cd /Serveur/CDs/
tar xvf leximage-plus-1.0.1-linux.tar.gz
```

#### **Mikado**

<span style="color: #3366ff;">[https://numerique53.ac-nantes.fr/ressources/applications/mikado.html](https://numerique53.ac-nantes.fr/ressources/applications/mikado.html)</span>

Une fois la version portable téléchargée, on la dépose sur le Partage Serveur et on décompresse :

```
cp /home/administrateur/téléchargements/leximage-plus-1.0.1-linux.tar.gz /Serveur/CDs/
cd /Serveur/CDs/
tar xvf leximage-plus-1.0.1-linux.tar.gz
```

#### **Rondissimo**

<span style="color: #3366ff;">[https://numerique53.ac-nantes.fr/ressources/applications/rondissimo.html](https://numerique53.ac-nantes.fr/ressources/applications/rondissimo.html)</span>

<p class="callout info">Il n'existe pas de version portable, il faut donc l'installer sur un PC windows, et récupérer le répertoire d'installation, et le placer sur le serveur.</p>

#### **LogiPix**

<span style="color: #3366ff;">[https://numerique53.ac-nantes.fr/ressources/applications/logipix.html](https://numerique53.ac-nantes.fr/ressources/applications/logipix.html)</span>

<p class="callout info">Il n'existe pas de version portable, il faut donc l'installer sur un PC windows, et récupérer le répertoire d'installation, et le placer sur le serveur.</p>

#### **Puzz'N Road**

<span style="color: #3366ff;">[https://numerique53.ac-nantes.fr/ressources/applications/puzznroad.html](https://numerique53.ac-nantes.fr/ressources/applications/puzznroad.html)</span>

<p class="callout info">Il n'existe pas de version portable, il faut donc l'installer sur un PC windows, et récupérer le répertoire d'installation, et le placer sur le serveur.</p>

# Personnalisation

## **Changer l'image de login**

il faut ensuite la copier en lieu et place de l'image de base, pour le serveur :

```
cp /home/administrateur/Téléchargements/Wallpaper-Edubuntu-2023.png /usr/share/backgrounds/warty-final-ubuntu.png
```

et pour l'image client :

```
cp -r /usr/share/backgrounds/ /srv/ltsp/edubuntu/usr/share/
```

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Srsimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Srsimage-png.png)

<p class="callout info">Lien vers l'[image](https://kasa.vitrecommunaute.bzh/index.php/s/edu-2-wallpaper).</p>

## **Apparence du menu "Démarrer"**

Dans un premier temps il faut se connecter avec une session qui service de modèle, dans l'idéal, qui ne sert que de modèle.

Cliquer droit sur l'icone du menu :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/kKFimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/kKFimage-png.png)

Afficher les alternative, et choisir le menu d'applications.

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/fEJimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/fEJimage-png.png)

Pour que le menu soit plus conviviale et intuitif, il est intéressant de changer l'icone :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/3Pmimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/3Pmimage-png.png)

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/EKSimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/EKSimage-png.png)

On peut alors choisir l'icone qui nous plait dans la liste, ou même en ajouter des nouvelles.

## **Applications du menu "Démarrer"**

Une fois cela fait, on va ajouter des applications personnalisées, comme TuxBot ou Mikado, à voir sur la page <span style="color: #3366ff;">[Logiciels](https://doc.threatec.com/books/ubuntu-education/page/logiciels "Logiciels")</span>.

Toujours clic droit sur le menu démarrer =&gt; Editer les applications... :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/NAQimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/NAQimage-png.png)

Un menu s'ouvre alors, et on peut y ajouter, supprimer des applications, refaire tout le menu des applications :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/pwTimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/pwTimage-png.png)

**Exemple avec Tuxbot :**

1. On se place dans la catégorie adéquate
2. On ajoute un élément et on choisis le nom, qui sera en 3
3. On peut modifier le nom qui s'affiche
4. On choisis l'icone qui apparaitra avec l'application. Attention, l'image doit etre dans le système du client lourd, pas le serveur ou les home
5. On va cherche le logiciel, ici TuxBot.exe
6. Etant donné qu'il s'agit de Tuxbot, on a besoin de Wine, on va donc l'ajouter en début de commande
7. Ce témoin permet d'avoir un visuel sur le lancement du logiciel (logo rebondissant à côté du curseur)

<p class="callout info">L'exemple de Tuxbot est a refaire pour chaque logiciels Wine de la page <span style="color: #3366ff;">[Logiciels](https://doc.threatec.com/books/ubuntu-education/page/logiciels "Logiciels")</span>.</p>

## Favoris de l'explorateur de fichier

Une fois connecté sur la session modèle, on lance l'explorateur de fichier "Dolphin" et on peut masque les sections ou éléments qui ne sont pas nécessaires simplement en faisant un clic droit :

![image-1682672776645.png](https://doc.threatec.com/uploads/images/gallery/2023-04/scaled-1680-/AZKNzcMKgIHwKtm3-image-1682672776645.png)

<p class="callout warning">Attention à ne pas masquer la section "Périphériques" mais uniquement le disque système, si un utilisateur branche une clé USB ou insère un CD, il serait masqué.</p>

On peut également en ajouter, en glissant les dossiers voulus dans la section "Emplacement".

<p class="callout warning">Il faut tout de même que ce soit des dossiers que chaque utilisateurs aura dans sa propre session (Ex : Image, Téléchargements etc), autrement cela génerera des erreurs.</p>

Une fois toutes les modifications voulues effectuées, on ferme la session, et sur le serveur, on copie le fichier **.local/share/user-places.xbel** de la session modèle, ver le skel, avec le même chemin !

<p class="callout warning">Le fichier tel quel ne peut être utilisé, le chemin d'accès aux raccourcis et favoris, comporte, écrit en dur le chemin vers la session modèle, pour changer cela, voici la procédure :</p>

Pour que les "Emplacements" situés dans le menu gauche, éditer plus tôt sur notre session modèle soit identiques pour tous, il faut que le fichier se modifie pour chaque utilisateur, dès sa première connexion. Pour se faire, nous avons besoin de la commande sed, qui va remplacer toutes les occurences liées notre modèle, par la session utilisateur :

```
sed -i s/{session-modele}/$USER/g ~/.local/share/user-places.xbel
```

Il faut enregistrer le tout à la fin du fichier **/etc/profile**.

## **Changer image de profile**

Comme il s'agit d'une solution a destination des écoles, et donc des enfants, j'ai décidé d'ajouter un peu de fantaisie sur les images de profils, en les modifiants.

J'ai donc une icone utilisateur pour les enseignants :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/N3Kimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/N3Kimage-png.png)

et une icone pour les enfants :

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Qm8image-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Qm8image-png.png)

Pour que chacun est l'image qui lui correspond, je me réfère au groupe principale de l'utilisateur.  
Dans un premier temps j'ajoute ces images au skel :

```
cp /home/administrateur/téléchargements/prof.png /etc/skel/.modele/prof
cp /home/administrateur/téléchargements/eleve.png /etc/skel/.modele/eleve
```

Ensuite, j'ajoute quelques lignes au fichier /etc/profile de l'image client :

```shell
groupe=$(groups)

if [[ $groupe = "Enseignants" ]];
then
        cp -r ~/.modele/prof ~/.face
        cp -r ~/.modele/prof ~/.face.icon
else
        cp -r ~/.modele/eleve ~/.face
        cp -r ~/.modele/eleve ~/.face.icon
fi

```

A chaque démarrage l'image utilisateur est mise à jour.

# Skel

## **Présentation**

Le terme "skel" en informatique fait référence au répertoire "squelette" (souvent abrégé en "skel"), qui est utilisé dans les systèmes Linux pour stocker les fichiers et les paramètres par défaut qui seront copiés dans le répertoire personnel de chaque nouvel utilisateur lors de sa création. Voici une présentation de son fonctionnement et de son utilité :

1. **Utilité** :
    
    
    - Le répertoire skel est utilisé pour personnaliser l'environnement de base de chaque nouvel utilisateur créé sur le système.
    - Il permet de définir des paramètres par défaut, tels que des fichiers de configuration, des scripts d'initialisation, des modèles de fichiers et des raccourcis, qui seront automatiquement présents dans le répertoire personnel de chaque utilisateur.
2. **Contenu typique** :
    
    
    - Le répertoire skel peut contenir une variété de fichiers et de répertoires, tels que : 
        - Des fichiers de configuration par défaut pour les applications courantes, comme les paramètres de l'interpréteur de commandes (bash), les préférences de l'éditeur de texte (vim ou nano), ou les configurations de bureau (pour GNOME, KDE, etc.).
        - Des répertoires spéciaux, tels que "Desktop", "Documents", "Downloads", etc., qui serviront de modèles pour la structure du répertoire personnel de chaque utilisateur.
        - Des scripts d'initialisation personnalisés, qui seront exécutés lors de la première connexion de l'utilisateur pour effectuer des actions spécifiques, telles que la configuration de l'environnement ou le téléchargement de fichiers supplémentaires.
3. **Emplacement** :
    
    
    - Le répertoire skel est généralement situé dans /etc/skel sur la plupart des distributions Linux.
    - Les fichiers et les répertoires présents dans /etc/skel seront automatiquement copiés dans le répertoire personnel
    - de chaque nouvel utilisateur lors de sa création.
4. **Personnalisation** :
    
    
    - Les administrateurs système peuvent personnaliser le contenu du répertoire skel selon les besoins spécifiques de leur environnement, en ajoutant, en supprimant ou en modifiant des fichiers et des répertoires selon les préférences de configuration de l'entreprise ou de l'organisation.

En résumé, le répertoire skel est un outil utile pour standardiser et personnaliser l'environnement utilisateur sur les systèmes Linux, en fournissant un ensemble de fichiers et de paramètres par défaut qui sont automatiquement appliqués à chaque nouvel utilisateur créé sur le système.

## **Favoris de l'explorateur de fichier**

Pour que les favoris définis précédemment soient appliqués aux nouveaux utilisateur, il faut copier le fichier `user-places.xbel` de la session modèle, vers le skel :

```
cp /home/users/{session modele}/.local/share/user-places.xbel /etc/skel/.local/user-places.xbel
```

<p class="callout info">Le fichier user-places.xbel est configuré avec des chemins absolus et non relatifs !  
C'est pour cette raison qu'il faut ajouter une commande au fichier /etc/profile de l'image :</p>

```
sed -i s/{session-modele}/$USER/g ~/.local/share/user-places.xbel
```

## **Personnalisation du menu "Démarrer"**

Une fois toutes nos applications ajoutées à notre menu démarrer de la session modèle, on va copier sa configuration dans le skel :

```
cp -R /home/users/{session modele}/.local/share/applications/* /etc/skel/.local/share/applications/
cp /home/users/{session modele}/.config/menus /etc/skel/.config/menus
```

<p class="callout info">Le fichier `.config/menus` contient la configuration globale du menu démarrer.  
Cette dernière fait appelle a des fichiers `.desktop`; présents dans le répertoire `.local/share.applications/`; qui continnent l'ensemble des infos de chaques applications, commande, chemin d'accès, icone etc</p>

# Partage serveur

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/itHimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/itHimage-png.png)

## **Présentation**

OpenSSH est une suite d'outils open source utilisée pour la communication sécurisée sur un réseau. Voici une présentation de ses principales caractéristiques :

1. **Sécurité des communications** : OpenSSH assure la sécurité des communications en chiffrant les données échangées entre les systèmes. Il utilise des algorithmes de chiffrement robustes pour protéger les informations sensibles, empêchant ainsi les attaquants d'intercepter ou de modifier les données transitant sur le réseau.
2. **Connexions sécurisées** : OpenSSH prend en charge les connexions sécurisées entre des machines distantes via le protocole SSH (Secure Shell). Ce protocole permet aux utilisateurs de se connecter à des serveurs distants de manière sécurisée et d'exécuter des commandes à distance de manière fiable, même sur des réseaux non sécurisés.
3. **Authentification sécurisée** : OpenSSH propose plusieurs méthodes d'authentification sécurisée, y compris l'authentification par mot de passe, l'authentification par clé publique et l'authentification à deux facteurs, offrant ainsi une flexibilité pour répondre aux besoins de sécurité spécifiques de chaque environnement.
4. **Transfert de fichiers sécurisé** : OpenSSH inclut également des outils tels que scp (Secure Copy) et sftp (Secure File Transfer Protocol) pour transférer des fichiers de manière sécurisée entre des machines distantes. Ces outils utilisent SSH pour chiffrer les données lors du transfert, assurant ainsi la confidentialité et l'intégrité des fichiers échangés.
5. **Tunnels SSH** : OpenSSH permet de créer des tunnels SSH, également appelés tunnels SSH ou tunnels port forwarding, qui permettent de sécuriser et d'acheminer le trafic réseau à travers un tunnel chiffré. Cela peut être utilisé pour sécuriser les communications sur des réseaux non fiables ou pour accéder à des services internes à distance de manière sécurisée.
6. **Gestion à distance sécurisée** : OpenSSH est largement utilisé pour la gestion à distance sécurisée des serveurs et des équipements réseau. Il permet aux administrateurs système d'accéder aux machines distantes de manière sécurisée, de configurer et de maintenir les systèmes à distance sans compromettre la sécurité.
7. **Open Source et documentation abondante** : OpenSSH est un logiciel open source largement utilisé dans l'industrie informatique. Il est bien documenté, avec une communauté active d'utilisateurs et de développeurs qui fournissent un support technique et des ressources en ligne pour aider les utilisateurs à tirer le meilleur parti de cette suite d'outils.

<p class="callout info">Site officiel [OpenSSH](https://www.openssh.com).</p>

## **Installation**

```
apt update && apt upgrade
apt install sshfs
```

## **Création des clés**

Pour que le montage Serveur se fasse, j'utilise le protocole sshfs :

Lors de l'ouverture de la session utilisateur, la machine envoie une requetes de montage réseau SSHFS avec un utilisateur et une clé privée. Cette clé est comparée avec la clé publique, si les clés sont bien compatibles, le montage se fait.

Pour faire tout ceci, on se connecte avec un utilisateur lambda. On lance un termnal Ctrl+Alt+T et on génère les clès avec la commande suivante :

```
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /home/mnteleve/.ssh/Montage-Eleves
Enter passphrase (empty for no passphrase): (laisser vide)
Enter same passphrase again: (laisser vide)
Your identification has been saved in /home/mnteleve/.ssh/Montage-Eleves
Your public key has been saved in /home/mnteleve/.ssh/Montage-Eleves.pub
The key fingerprint is:
SHA256:UL9NLEimhn2SU99SXVPnOWWWqlo0WgfPrqR9TK0gJgc
The key's randomart image is:
+---[RSA 3072]----+
|        =   .. oX|
|     o B + =  .==|
|    . O o = B .o.|
|     . E   X =  .|
|        S = * .  |
|       . = = o . |
|        + B = .  |
|         o o +   |
|            .    |
+----[SHA256]-----+
```

```
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /home/mntenseignants/.ssh/Montage-Profs
Enter passphrase (empty for no passphrase): (laisser vide)
Enter same passphrase again: (laisser vide)
Your identification has been saved in /home/mntenseignants/.ssh/Montage-Profs
Your public key has been saved in /home/mntenseignants/.ssh/Montage-Profs.pub
The key fingerprint is:
SHA256:IjpYR0Vm0trkiFSPJEgSxsNoR9K4kI8HY3wtbFj20bY
The key's randomart image is:
+---[RSA 3072]----+
|OBO==+*          |
|XX+X.O+o         |
|+**.+Bo .        |
|..+.o oE         |
| .. o . S        |
| o o . .         |
|. o              |
|   .             |
|                 |
+----[SHA256]-----+
```

Une fois la clé générée, on copie le contenue de la clé "Nom-Montage.pub" dans le dossier .ssh/authorized\_keys de l'utilisateur de montage associé.

```
cp /home/mnteleve/.ssh/Montage-Eleves.pub /home/mnteleve/.ssh/authorized_keys
cp /home/mntenseignants/.ssh/Montage-Profs.pub /home/mntenseignants/.ssh/authorized_keys
```

Il ne faut pas oublier de placer la clé privé "Nom-Montage" dans le dossier .ssh du skel, ou changer le chemin d'accès sur le fichier /etc/profile.

```
cp /home/mnteleve/.ssh/Montage-Eleves* /etc/skel/.ssh/
cp /home/mntenseignants/.ssh/Montage-Profs* /etc/skel/.ssh/
touch /etc/skel/.ssh/authorized_keys
echo /home/mnteleve/.ssh/authorized_keys >> /etc/skel/.ssh/authorized_keys
echo /home/mntenseignants/.ssh/authorized_keys >> /etc/skel/.ssh/authorized_keys
```

Il faut ensuite que les doits d'accès soient correctent :

```bash
chmod 700 /home/mnteleve/.ssh
chmod 700 /home/mntenseignants/.ssh
chmod 644 /home/mnteleve/.ssh/*.pub
chmod 644 /home/mntenseignants/.ssh/*.pub
chmod 600 /home/mnteleve/.ssh/Montage-Eleves
chmod 600 /home/mntenseignants/.ssh/Montage-Profs
chmod 700 /etc/skel/.ssh
chmod 644 /etc/skel/.ssh/*.pub
chmod 600 /etc/skel/.ssh/Montage-Eleves
chmod 600 /etc/skel/.ssh/Montage-Profs
```

## **Montage automatique**

Pour que le montage soit automatique, mais qu'il respecte en plus les droits différenciés entre Enseignants et Elèves, nous devons modifier le fichier /etc/profile :

```shell
groupe=$(groups)

if [[ $groupe = "Enseignants" ]];
then
        sshfs mntenseignants@192.168.1.1:/Serveur ~/Serveur -o IdentityFile=~/.ssh/Montage-Profs -o StrictHostKeyChecking=accept-new
else
        sshfs mnteleve@192.168.1.1:/Serveur ~/Serveur -o IdentityFile=~/.ssh/Montage-Eleves -o StrictHostKeyChecking=accept-new
fi

```

Ce script permet de définir quel utilisateur et quelle clé SSH utiliser pour faire le montage réseau en fonction du groupe de l'utilisateur. Cette section est à ajouter à le suite de l'existant dans le fichier.

<p class="callout warning">Il est impératif que le dossier .ssh contenant les deux clés soit présent dans le dossier skel, sans ça, le montage est impossible.</p>

# Inventaire

[![GLPI_Logo-color.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/glpi-logo-color-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/glpi-logo-color-png.png)

## **Présentation**

L'agent d'inventaire GLPI est un outil puissant qui permet de collecter des informations détaillées sur les matériels et les logiciels présents dans un réseau informatique. Voici une présentation de ses principales fonctionnalités :

### **Fonctionnalités de l'agent d'inventaire GLPI :**

1. **Collecte d'informations :**
    
    
    - **Matériel** : Inventaire des composants matériels (processeurs, mémoire, disques, etc.).
    - **Logiciels** : Liste des logiciels installés, versions, et licences.
    - **Réseaux** : Informations sur les connexions réseau et les adresses IP.
2. **Automatisation :**
    
    
    - **Inventaire périodique** : L'agent peut être configuré pour envoyer des informations à intervalles réguliers.
    - **Déploiement de paquets** : Installation de logiciels à distance via l'agent.
3. **Compatibilité :**
    
    
    - **Multi-plateforme** : L'agent fonctionne sur Windows et Linux.
    - **Intégration** : Compatible avec les plugins comme FusionInventory et OCS Inventory.
4. **Gestion des licences :**
    
    
    - **Suivi des licences** : Assistance à la gestion des licences logicielles et matérielles.
5. **Rapports personnalisés :**
    
    
    - **Génération de rapports** : Création de rapports détaillés sur l'inventaire pour une meilleure gestion des actifs.

<p class="callout info">Site officiel [GLPI Agent](https://glpi-project.org/fr/telecharger-glpi-agent-1-10/).</p>

## **Installation**

Si ce n'est pas déjà fait, il faut d'abord ajouter les repositories qui contiennent, pour partie fusioninventory-agent

```
add-apt-repositories multiverse
apt update && apt upgrade
```

On peut ensuite ajouter les dépendances :

```
apt install libnet-ssh2-perl libparallel-forkmanager-perl libxml-libxml-perl libcpanel-json-xs-perl libossp-uuid-perl libdatetime-perl
```

On télécharge ensuite le paquet avant de l'installer :

```
wget https://github.com/glpi-project/glpi-agent/releases/download/1.7/glpi-agent_1.7-1_all.deb
dpkg -i glpi-agent_1.7-1_all.deb
```

## **Configuration**

Le fichier de configuration de l'agent se situe ici :

```
nano /etc/glpi-agent/agent.cfg
```

Il faut alors modifier le fichier comme suit :

```shell
# GLPI agent configuration

# all defined values match default
# all commented values are examples


#
# Target definition options
#

# send tasks results to a GLPI server
server = https://support.vitrecommunaute.org/
# send tasks results to a GlpiInventory plugin installed via marketplace
# Read this caution note in documentation to find the right URL:
# https://glpi-agent.readthedocs.io/en/latest/configuration.html#server
server = https://support.vitrecommunaute.org/marketplace/glpiinventory/
# send tasks results to a FusionInventory for GLPI server
#server = https://support.vitrecommunaute.org/glpi/plugins/fusioninventory/
# write tasks results in a directory
#local = /tmp

#
# Task definition options
#

# disable software deployment tasks
#no-task = deploy
tasks = inventory,deploy,inventory
```

## **Lancer au démarrage du client**

Pour que l'agent se lance au démarrage, avec les clients, il faut ajouter une tâche cron :

```
crontab -e
```

En fin de fichier on peut ajouter cette ligne en fin de fichier :

```
@reboot glpi-agent 
```

# Autre

## **Fichier /etc/profile**

Le fichier /etc/profile est un fichier de configuration système présent sur les systèmes Linux, en particulier ceux utilisant le shell Bash comme interpréteur de commandes. Ce fichier est exécuté lorsqu'un utilisateur se connecte au système, fournissant ainsi des paramètres et des variables d'environnement par défaut pour toutes les sessions interactives.

Voici une présentation générale de son rôle et de son contenu typique :

1. **Rôle** :
    
    
    - Le fichier /etc/profile est utilisé pour initialiser les paramètres d'environnement globaux pour tous les utilisateurs du système au moment de la connexion.
    - Il est utilisé pour définir des variables d'environnement importantes, des chemins d'accès par défaut et d'autres configurations système qui doivent être disponibles pour tous les utilisateurs.
2. **Contenu typique** :
    
    
    - Définition de variables d'environnement : Le fichier /etc/profile peut contenir des lignes qui définissent des variables d'environnement telles que PATH, LANG, LC\_ALL, etc.
    - Configuration de variables d'initialisation : Il peut également contenir des lignes de configuration pour définir des paramètres spécifiques, comme la configuration de l'invite de commandes (PS1), les paramètres de langue (LANG), ou d'autres variables personnalisées.
    - Inclusion d'autres fichiers de configuration : Il est courant que le fichier /etc/profile inclue d'autres fichiers de configuration situés dans le répertoire /etc/profile.d/. Cela permet d'organiser la configuration en fragments individuels et de rendre le fichier principal plus facile à maintenir.
3. **Utilisation** :
    
    
    - Le contenu du fichier /etc/profile est exécuté lors de l'ouverture d'une session interactive par un utilisateur, que ce soit via une connexion SSH, un terminal virtuel, ou une session graphique.
    - Les variables et les configurations définies dans ce fichier seront disponibles pour toutes les commandes exécutées par l'utilisateur dans cette session, ainsi que pour tous les scripts et programmes lancés par l'utilisateur.
4. **Personnalisation** :
    
    
    - Les administrateurs système peuvent personnaliser le fichier /etc/profile en fonction des besoins spécifiques de leur environnement, en ajoutant, en supprimant ou en modifiant des variables d'environnement et des configurations système selon les politiques de l'organisation.

En résumé, le fichier /etc/profile joue un rôle important dans la configuration de l'environnement système pour les sessions interactives des utilisateurs sur un système Linux, en fournissant des paramètres et des variables d'environnement par défaut pour toutes les sessions d'utilisateur.

<p class="callout info">Voici la version finale du fichier /etc/profile utilisé dans ma version Edubuntu :</p>

```shell
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

#Récupérer le groupe principal de l'utilisateur
groupe=$(groups)

if [[ $groupe = "Enseignants" ]];
then
        #Montage du lecteur réseau
        sshfs mntenseignants@192.168.1.1:/Serveur ~/Serveur -o IdentityFile=~/.ssh/Montage-Profs -o StrictHostKeyChecking=accept-new
        #Changement de l'icone utilisateur
        cp -r ~/.modele/prof ~/.face
        cp -r ~/.modele/prof ~/.face.icon
else
        #Montage du lecteur réseau
        sshfs mnteleve@192.168.1.1:/Serveur ~/Serveur -o IdentityFile=~/.ssh/Montage-Eleves -o StrictHostKeyChecking=accept-new
        #Changement de l'icone utilisateur
        cp -r ~/.modele/eleve ~/.face
        cp -r ~/.modele/eleve ~/.face.icon
fi
#Changer la variable %utilisateur par le nom d'utilisateur, pour les raccourcis et favoris du menu démarrer
sed -i s/\$utilisateur/$USER/g ~/.local/share/user-places.xbel
#Suppression du cache session pour les problèmes de souris
rm -rf ./cache/*
```