# 5.1.2. Utilisateurs, dossiers & droits

## 5.1.2.1. Utilisateurs et groupes d’exécution

La segmentation des droits utilisateurs doit permettre de respecter les contraintes suivantes :

- Assurer une séparation des utilisateurs humains du système et des utilisateurs système sous lesquels tournent les process système VITAM ;
- Séparer les droits des rôles d’exploitation différents suivants :
  - Les administrateurs système (OS) ;
  - Les administrateurs techniques des logiciels VITAM ;
  - Les administrateurs des bases de données VITAM.

Les utilisateurs et groupes décrits dans les paragraphes suivants doivent être ajoutés par les scripts d’installation de la solution VITAM. En outre, les règles de sudoer associées aux groupes `vitam*-admin` doivent également être mis en place par les scripts d’installation.

Les sudoers sont paramétrés en mode NOPASSWD, c’est à dire qu’aucun mot de passe n’est demandé à l’utilisateur faisant partie du groupe `vitam*-admin` pour lancer les commandes d’arrêt relance des applicatifs Vitam.

Note

Les fichiers de règles sudoers des groupes `vitam-admin` et `vitamdb-admin` seront systématiquement écrasés à chaque installation des paquets (rpm / deb) déclarant les utilisateurs VITAM. (Un backup de l’ancien fichier sera tout de même effectué).

### 5.1.2.1.1. Groupes

- `vitam` (GID : 2000) : il s’agit du groupe primaire des utilisateurs de service
- `vitam-admin` (GID : 3000) : il s’agit du groupe d’utilisateurs ayant les droits « sudo » permettant le le lancement des services VITAM
- `vitamdb-admin` (GID : 3001) : il s’agit du groupe d’utilisateurs ayant les droits « sudo » permettant le lancement des services VITAM stockant de la donnée.

### 5.1.2.1.2. Utilisateurs

- utilisateur de service ; les processus VITAM tournent sous cet utilisateur. Leur login est désactivé.

  > - `vitam` (UID : 2000) : pour les services ne stockant pas les données
  > - `vitamdb` (UID : 2001) : pour les services stockant des données (Ex : MongoDB et ElasticSearch)

## 5.1.2.2. Arborescence de fichiers

### 5.1.2.2.1. Services VITAM

Pour un service d’id `<service_id>`, les fichiers et dossiers impactés par VITAM sont les suivants.

#### 5.1.2.2.1.1. Arborescence VITAM

L’arborescence `/vitam` héberge les fichiers propres aux différents services ; son arborescence interne est normalisée selon le pattern suivant : `/vitam/<folder_type>/<service_id>` où :

- `<service_id>` est l’id du service auquel appartient les fichiers ;

- `<folder-type>` est le type de fichiers contenu par le dossier :

  > - `app` : fichiers de ressources (non-jar) requis pour l’application (ex: .war)
  > - `bin` : binaires (le cas échéant)
  > - `script` : Répertoire des scripts d’exploitation du module (start/stop/status/backup)
  > - `conf` : Fichiers de configuration
  > - `lib` : Fichiers binaires (ex: jar)
  > - `log` : Logs du composant
  > - `data` : Données du composant
  > - `tmp` : Données temporaires produites par l’application

Les dossiers `/vitam` et `/vitam/<folder_type>` ont les droits suivants :

- Owner : `root`
- Group owner : `root`
- Droits : 0555

A l’intérieur de ces dossiers, les droits par défaut sont les suivants :

- Fichiers standards :

  > - Owner : `vitam` (ou `vitamdb`)
  > - Group owner : `vitam`
  > - Droits : 0640

- Fichiers exécutables et répertoires :

  > - Owner : `vitam` (ou `vitamdb`)
  > - Group owner : `vitam`
  > - Droits : 0750

Prudence

Cette arborescence ne peut contenir de caractère spécial ; les éléments du chemin (notamment le `service_id`) doivent respecter l’expression régulière suivante : `[0-9A-Za-z-_]+`

Le système de déploiement et de gestion de configuration de la solution est responsable de la bonne définition de cette arborescence (tant dans sa structure que dans les droits utilisateurs associés).

#### 5.1.2.2.1.2. Intégration au système

- `/usr/lib/systemd/system/` : répertoire racine des définitions de units systemd de type « service » sur les distributions Linux type RedHat
- `/lib/systemd/system/` : répertoire racine des définitions de units systemd de type « service » sur les distributions Linux type Debian
- `<service_id>.service` : fichier de définition du service systemd associé au service VITAM

### 5.1.2.2.2. COTS

Les COTS utilisent la même nomenclature de répertoires et utilisateurs que les services VITAM, aux exceptions suivantes :

- Les fichiers binaires et bibliothèques utilisent les dossiers de l’installation du paquet natif.