---
title: 'les scripts startup et logon dans les clinux'
url: 'https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/les-scripts-de-gestion'
markdown: 'https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/les-scripts-de-gestion.md'
date: '2025-02-11'
description: "Principe des scripts Le mécanisme de scripts logon et startup permet une gestion avancée du système. On distingue ceux qui sont lancés à chaque démarrage, avec des droits root (les scripts startup) et ceux qui sont lancés à chaque logon d'un utilisateur, qui s'éxécutent donc avec des droits utili…"
taxonomy:
  category:
    - docs
---

[](#) [  Edit this Page](https://gitlab.sambaedu.org/sambaedu/sambaedu-doc/-/tree/main/pages/03.utiliser-se4/01.guide-administration/28.gestion-des-clients-linux/03.les-scripts-de-gestion/docs.md%20) 

  [ Accueil ](https://doc.sambaedu.org/)     [ Utiliser SambaÉdu4 ](https://doc.sambaedu.org/utiliser-se4)     [ Guide de l'administrateur ](https://doc.sambaedu.org/utiliser-se4/guide-administration)     [ Gestion des Clients Linux dans un domaine SambaÉdu ](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux)      les scripts startup et logon dans les clinux    

# les scripts startup et logon dans les clinux

- Principe des scripts

Le mécanisme de scripts logon et startup permet une gestion avancée du système.

On distingue ceux qui sont lancés à chaque démarrage, avec des droits root (les scripts startup) et ceux qui sont lancés à chaque logon d'un utilisateur, qui s'éxécutent donc avec des droits utilisateurs classiques.

Ces scripts sont à placer dans un dossier situé dans /etc/sambaedu/applications/ . Chaque script doit avoir des droits www-admin:root en droits 750

**les scripts sont en bash, sans entête, impérativement non interactifs et sans erreurs ( mettre `|| true` à la fin des commandes pour ne pas que le script s'arrête en cas d'erreur)**

**De même :pas de commande exit dans les scripts ; sinon tout le mécanisme est stoppé lors d'un exit.**

- Quelques indications concernant les scripts et leurs domaines d'applications

| nom\_du\_script | droits | applications |
|---|---|---|
| startup.linux | droits root | exécuté à chaque boot |
| startup-once.linux | droits root | exécuté une seule fois |
| <startup@parc.linux> | droits root | exécuté à chaque boot sur un parc |
| <startup@machine.linux> | droits root | exécuté à chaque bootsur une machine |

| nom\_du\_script | droits | applications |
|---|---|---|
| logon.linux | droits de l'user | au logon de l'user |
| logoff.linux | droits de l'user | à la déconnexion de l'user |

On peut mettre, pour des actions ciblées :

<logon@Eleves.linux>, <logon@Profs.linux>, logon@Classe\_3A.linux, et même <logon@prenom.nom.linux> pour uniquement un compte

**les -once ne sont pas gérés pour les groupes**

- Quelques exemples de scripts:

1. Config d'Openboard

Voici le contenu du fichier `/etc/sambaedu/applications/config_openboard/startup.linux`

```
cp /opt/install/packages/OpenBoard/OpenBoard.configlinux /etc/openboard/OpenBoard.config ||true
```

Ici, le fichier de config d'openboard placé sur le se4fs est copié à chaque démarrage pour qu'openboard aille chercher les documents stockés dans le home de l'user, comme indiqué dans le fichier openboard.config du dépot Sambaédu. cette config serait écrasée en cas de MAJ d'openboard.

2. Configuration d'Arduino Voici le contenu du fichier `/etc/sambaedu/applications/arduino/logon.linux````
    usermod --append --groups dialout $LOGIN ||true
    ```

    Ici, l'user est ajouté au groupe dialout et va ainsi pourvoir utiliser arduino correctement.

Ce script sera couplé avec un script startup:

Par exemple, voici le contenu d'un fichier `/etc/sambaedu/applications/arduino/startup-once.linux` qui va permettre d'ajouter l'user courant au groupe dialout, nécéssaire pour utiliser le logiciel Arduino.

```
echo "*;*;*;Al0000-2400;dialout" > /etc/security/group.conf
#
echo "Name: activate /etc/security/group.conf
#Default: yes
#Priority: 900
#Auth-Type: Primary
#Auth:   required                        pam_group.so use_first_pass" > /usr/share/pam-configs/my_groups

#debconf-set-selections <<EOF
#libpam-runtime    libpam-runtime/override    boolean    false
#libpam-runtime    libpam-runtime/profiles    multiselect my_groups, pam_script, unix, ldap, systemd, gnome-keyring
#EOF
    LIGNE=`grep -n 'success=3' /etc/pam.d/common-auth | cut -d: -f1`
    EXISTE=`grep "pam_group.so" /etc/pam.d/common-auth`
    if [ -z "$EXISTE" ]; then
        sed -i "${LIGNE}i auth    required pam_group.so use_first_pass" /etc/pam.d/common-auth
    fi
#     echo ""
```

3. Ajout de clefs pour installer un logiciel

Ici, voici le code contenu dans le fichier `/etc/sambaedu/applications/install_pycharm/startup-once.linux` qui va mettre en place les sources pour installer le logiciel Pycharm (éditeur python utilisé en NSI).

```
curl -s https://s3.eu-central-1.amazonaws.com/jetbrains-ppa/0xA6E8698A.pub.asc | gpg --dearmor | sudo tee /usr/share/keyrings/jetbrains-ppa-archive-keyring>
echo "deb [signed-by=/usr/share/keyrings/jetbrains-ppa-archive-keyring.gpg] http://jetbrains-ppa.s3-website.eu-central-1.amazonaws.com any main" | sudo tee>
```

Il ne reste plus qu'à ajouter le nom du paquet dans le fichier packages.list

Remarque: Ici, c'est un script once, il n'est executé qu'une seule fois. Si on modifie ce fichier, alors il sera exécuté à nouveau. Comment ça marche? C'est simple, le md5sum du script éxécuté est placé dans `/etc/sambaedu/applications` du client Linux. Si on modifie le script, alors son md5sum est modifié et le script est exécuté à nouveau

![md5-once.png](https://doc.sambaedu.org/user/pages/03.utiliser-se4/01.guide-administration/28.gestion-des-clients-linux/03.les-scripts-de-gestion/md5-once.png)

 [ ](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/personnaliser-l-apparence) [](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/utilisation-de-winehq)

---

## Navigation

- Parent: [Gestion des Clients Linux dans un domaine SambaÉdu](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux.md)
- Previous: [Modifier les caractéristiques visuelles des clients Linux](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/personnaliser-l-apparence.md)
- Next: [gestion-de-l-impression](https://doc.sambaedu.org/utiliser-se4/guide-administration/gestion-des-clients-linux/gestion-de-l-impression.md)
