Article

Fondamentaux Système : Exploiter son serveur Linux #2 – Administration système

6–10 minutes

🎯 Ce guide présente le bases d’Unix/Linux, en s’intéressant aux mécanismes qui organisent la sécurité et le fonctionnement du système. Il introduit la logique des permissions, véritable grammaire du système de fichiers, avant de présenter les différents types de comptes et la manière dont ils s’articulent avec les droits.
Le document aborde ensuite l’élévation de privilèges via sudo, la création d’utilisateurs et la gestion de leurs périmètres d’action.
La section consacrée à SSH expose les principes d’accès distant et les bonnes pratiques indispensables pour sécuriser les connexions.

Comprendre les droits sous Unix/Linux #

Sous Unix/Linux, les fichiers et les répertoires disposent tous d’un ensemble de droits permettant de contrôler ce que les utilisateurs peuvent faire.

Ces droits permettent notamment de lire, modifier ou exécuter un fichier. Ils permettent également de contrôler l’accès aux répertoires.

Cette gestion des permissions constitue l’un des mécanismes fondamentaux de sécurité du système : chaque utilisateur ne doit pouvoir accéder qu’aux ressources dont il a réellement besoin.

Les trois permissions

Les permissions Unix/Linux reposent sur trois droits principaux :

  • Lecture (r) : permet de consulter le contenu d’un fichier. Pour un répertoire, elle permet notamment d’en consulter la liste.
  • Écriture (w) : permet de modifier un fichier. Pour un répertoire, elle permet notamment d’y créer ou supprimer des fichiers.
  • Exécution (x) : permet d’exécuter un fichier lorsqu’il s’agit d’un programme ou d’un script. Pour un répertoire, elle permet de le traverser et donc d’accéder aux éléments qu’il contient.

Ces trois permissions sont ensuite appliquées à différentes catégories d’utilisateurs.

Propriétaire, groupe et autres utilisateurs

Chaque fichier ou répertoire associe ses permissions à trois catégories :

  • Le propriétaire (u pour user) : l’utilisateur auquel appartient le fichier.
  • Le groupe (g pour group) : les utilisateurs appartenant au groupe associé au fichier.
  • Les autres (o pour others) : tous les autres utilisateurs du système.

Cette distinction permet par exemple de donner à un utilisateur les droits de modification d’un fichier, tout en autorisant uniquement sa consultation par les autres utilisateurs.

Comment lire les permissions d’un fichier ? #

La commande ls -l permet de consulter les informations associées à un fichier ou à un répertoire.

Par exemple :

ls -l freepro

peut retourner :

-rwxr-xr-- 1 user group 12345 Nov 15 09:19 freepro

Dans cet exemple :

  • le propriétaire peut lire, modifier et exécuter le fichier ;
  • les membres du groupe peuvent lire et exécuter le fichier ;
  • les autres utilisateurs peuvent uniquement le lire.

Le premier caractère (- dans cet exemple) indique quant à lui le type d’objet. Un d indique par exemple qu’il s’agit d’un répertoire.

Quelques configurations courantes

Voici quelques exemples de permissions que vous pourrez rencontrer :

rw-------

Le fichier est accessible en lecture et en écriture par son propriétaire uniquement.

rw-rw-r--

Le propriétaire et les membres du groupe peuvent lire et modifier le fichier. Les autres utilisateurs peuvent uniquement le lire.

rwxrwxr-x

Le propriétaire et les membres du groupe peuvent lire, modifier et exécuter le fichier. Les autres utilisateurs peuvent le lire et l’exécuter.

drwxr-xr-x

Il s’agit d’un répertoire. Son propriétaire peut le modifier ; les autres utilisateurs peuvent le parcourir et consulter son contenu selon les droits associés aux fichiers qu’il contient.

Attention : les permissions trop ouvertes sont à éviter. Un fichier en rw-rw-rw-, par exemple, peut être modifié par n’importe quel utilisateur disposant d’un accès au système. Il est préférable de limiter les droits au strict nécessaire.


Comment modifier les droits sous Unix/Linux ?

La commande chmod permet de modifier les permissions d’un fichier ou d’un répertoire.

Les lettres utilisées correspondent aux catégories d’utilisateurs :

  • u : propriétaire ;
  • g : groupe ;
  • o : autres ;
  • a : tous les utilisateurs.

Les permissions sont représentées par :

  • r : lecture ;
  • w : écriture ;
  • x : exécution.

Par exemple :

chmod a+rw fichier

ajoute les droits de lecture et d’écriture à tous les utilisateurs.

chmod u=rw fichier

attribue au propriétaire uniquement les droits de lecture et d’écriture.

chmod a+x script.sh

ajoute le droit d’exécution à tous les utilisateurs.

La commande chmod permet donc d’ajuster précisément les permissions sans modifier le propriétaire ou le groupe du fichier.

Demander une modification de droits #

Un utilisateur peut généralement modifier les permissions des fichiers dont il est propriétaire.

Les fichiers appartenant au système sont, quant à eux, généralement protégés et placés sous la responsabilité de root. Leur modification peut donc nécessiter des privilèges d’administration.

Si vous devez modifier les droits d’un fichier ou d’un répertoire que vous ne pouvez pas administrer directement, contactez notre support en précisant :

  • le chemin complet du fichier ou du répertoire ;
  • les droits actuellement configurés, si vous les connaissez ;
  • les droits souhaités ;
  • la raison de la modification.

Cela permet de vérifier la demande et d’appliquer uniquement les permissions nécessaires.


Les différents types de comptes utilisateurs

Les permissions permettent de déterminer ce qu’un utilisateur peut faire. Il faut donc également comprendre les différents types de comptes présents sur un système Unix/Linux.

Les comptes système #

Les comptes système sont utilisés par le système d’exploitation et par les services qui s’exécutent sur le serveur.

Ils n’ont généralement pas vocation à être utilisés pour une connexion interactive par un utilisateur. Leurs permissions sont volontairement limitées afin de réduire les conséquences d’une éventuelle compromission du service concerné.

Selon la distribution Linux et sa configuration, on peut notamment retrouver :

  • un UID inférieur à 1000 pour de nombreux comptes système ;
  • un shell non interactif comme /usr/sbin/nologin ou /bin/false ;
  • un répertoire personnel limité ou inexistant.

Ces valeurs peuvent toutefois varier selon la distribution.

Les comptes utilisateurs #

Il s’agit des comptes destinés aux utilisateurs humains.

Ils disposent généralement d’un répertoire personnel, d’un shell et de permissions correspondant aux tâches qui leur sont confiées.

L’objectif est de permettre à chaque utilisateur de travailler sans lui accorder inutilement des privilèges d’administration.

Le compte root #

root est le compte administrateur du système.

Il dispose de privilèges très élevés permettant notamment de modifier les fichiers système, les services, les utilisateurs et la configuration du serveur.

C’est précisément pour cette raison qu’il est préférable de ne pas utiliser directement root pour les tâches quotidiennes.


Comment utiliser sudo ?

sudo permet à un utilisateur autorisé d’exécuter ponctuellement une commande avec les privilèges d’un autre utilisateur, généralement root.

Cette approche permet d’effectuer une opération nécessitant des droits d’administration sans travailler en permanence avec un compte privilégié.

Par exemple :

sudo <commande>

Lors de l’exécution, le système peut demander le mot de passe du compte actuellement utilisé.

Pour ouvrir temporairement un shell root :

sudo su -

Le mot de passe demandé est celui du compte avec lequel vous êtes connecté, et non celui du compte root.

À retenir : sudo doit être utilisé uniquement lorsque les privilèges élevés sont nécessaires. Une commande exécutée avec sudo peut modifier profondément le système ; il est donc important de vérifier la commande avant de l’exécuter.


Se connecter à un serveur en SSH

SSH (Secure Shell) permet d’établir une connexion distante sécurisée vers un serveur Unix/Linux.

Il permet notamment d’administrer un serveur sans être physiquement devant la machine.

La connexion peut être effectuée avec :

ssh <IP_ou_hostname> -l <identifiant>

Par exemple :

ssh 85.31.196.15 -l username

Lors d’une première connexion, SSH peut afficher l’empreinte de la clé d’hôte du serveur et vous demander de la confirmer.

Cette étape est importante : elle permet de vérifier que le serveur auquel vous vous connectez est bien celui attendu.

L’empreinte doit idéalement être comparée avec une valeur connue et vérifiée par un canal de confiance.


Sécuriser les accès SSH

Un serveur SSH exposé sur un réseau doit être configuré avec précaution. Quelques mesures permettent de réduire significativement les risques liés aux accès distants.

Interdire la connexion directe de root #

Il est recommandé de ne pas autoriser une connexion SSH directe avec le compte root.

Dans la configuration du serveur SSH, le paramètre correspondant est :

PermitRootLogin no

L’administration peut alors être réalisée avec un compte utilisateur autorisé à utiliser sudo.

Privilégier l’authentification par clé #

L’authentification par clé SSH permet d’éviter de dépendre uniquement d’un mot de passe.

Une paire de clés peut être générée avec :

ssh-keygen -t ed25519

La clé publique peut ensuite être installée sur le serveur avec :

ssh-copy-id <user>@<serveur>

La clé privée doit rester strictement confidentielle et ne jamais être communiquée ou copiée sur un serveur sans nécessité.

Protéger le répertoire .ssh #

Le répertoire et les fichiers contenant les clés doivent également disposer de permissions restrictives :

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Cela limite l’accès aux informations utilisées pour l’authentification SSH.

Attention : ne validez pas automatiquement une nouvelle empreinte SSH. Si une machine connue est remplacée ou si sa clé change, vérifiez la nouvelle empreinte par un canal de confiance avant de l’accepter. Une modification inattendue peut notamment correspondre à une mauvaise configuration ou à une tentative d’interception de la connexion.


À retenir #

La sécurité d’un système Unix/Linux repose en grande partie sur la capacité à limiter les droits au strict nécessaire.

Les permissions déterminent ce qu’un utilisateur peut faire sur les fichiers et répertoires. Les comptes et les groupes permettent d’organiser ces permissions, tandis que sudo permet d’élever ponctuellement ses privilèges lorsque cela est nécessaire.

Enfin, SSH constitue le principal moyen d’accès distant aux serveurs Unix/Linux. Sa sécurisation, notamment par l’utilisation de comptes non privilégiés et de clés SSH, doit donc faire partie des précautions de base lors de l’administration d’un serveur.

Ceci conclut notre guide. Le Centre d’Expertise Client XPR reste à votre disposition.

Qu'avez vous pensé de cet article ?
Free Pro est la filiale entreprise du Groupe iliad et met l’expertise technologique du Groupe iliad au service des entreprises et des marchés publics

Grâce à des infrastructures souveraines et certifiées, Free Pro propose des solutions Cloud, IT, télécom et cybersécurité – appelées Solutions XPR – pour répondre de façon simple aux enjeux des environnements les plus exigeants.

Fidèle à l’ADN du Groupe iliad, Free Pro place l’humain au cœur de sa démarche, en garantissant un service de proximité partout en France et un partenariat de confiance avec chacun de ses clients. Une expertise reposant sur plus de 20 ans d’expérience, qui lui permet d’accompagner de grandes références telles que le Groupe Printemps, Lidl, Monin, le ministère de l’Intérieur ou encore Gaumont.