Groupes d'utilisateurs et permissions de fichiers sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Linux est un système d'exploitation multi-utilisateur. Cela signifie que plusieurs utilisateurs peuvent utiliser le même ordinateur Linux simultanément, chacun avec son propre espace privé et ses propres fichiers, tout en partageant également certaines ressources système. Ce laboratoire (LabEx) vous présentera les bases de la gestion des utilisateurs et des autorisations de fichiers sous Linux, des concepts essentiels pour l'administration système et la sécurité.

Afficher les informations de l'utilisateur actuel

Sous Linux, chaque utilisateur a un nom d'utilisateur unique. Commençons par identifier l'utilisateur avec lequel nous sommes actuellement connectés.

Ouvrez le terminal et entrez la commande suivante :

whoami

La commande whoami est un outil simple qui affiche le nom d'utilisateur de l'utilisateur actuel.

Vous devriez voir une sortie similaire à celle-ci :

labex:project/ $ whoami
labex

Cela indique que vous êtes actuellement connecté en tant qu'utilisateur "labex".

Créer un nouvel utilisateur

Maintenant, créons un nouvel utilisateur. Sous Linux, la création de nouveaux utilisateurs nécessite des privilèges d'administration. Nous utiliserons la commande sudo pour obtenir ces privilèges.

sudo signifie "Superuser Do" (Exécuter en tant que superutilisateur). Elle permet aux utilisateurs normaux d'exécuter des commandes en tant que superutilisateur (ou utilisateur root).

Avant de créer un nouvel utilisateur, discutons du concept de groupes primaires. Sous Linux, chaque utilisateur appartient à un groupe primaire et peut appartenir à plusieurs groupes secondaires. Le groupe primaire est généralement utilisé comme propriétaire de groupe pour les fichiers créés par l'utilisateur.

Lorsque vous créez un nouvel utilisateur avec adduser, il crée automatiquement un groupe primaire pour cet utilisateur ayant le même nom que le nom d'utilisateur. Cela s'appelle le schéma de groupe privé utilisateur (User Private Group - UPG).

Entrez la commande suivante pour créer un nouvel utilisateur nommé "jack" :

sudo adduser jack

Cette commande va :

  1. Créer un nouvel utilisateur nommé "jack"
  2. Créer un nouveau groupe nommé "jack" (le groupe primaire)
  3. Ajouter l'utilisateur "jack" au groupe "jack" en tant que groupe primaire
  4. Créer un répertoire personnel pour jack à /home/jack

Vous serez invité à définir un mot de passe pour jack et à fournir des informations supplémentaires. Vous pouvez définir un mot de passe simple (comme "password") et appuyer sur Entrée pour utiliser les valeurs par défaut pour les autres informations.

Après avoir créé l'utilisateur, vérifions qu'un répertoire personnel a été créé pour jack et vérifions le groupe primaire de jack :

ls /home
id jack

La commande id vous montrera l'identifiant utilisateur (UID) de jack, l'identifiant de groupe primaire (GID) et tous les groupes secondaires.

Explorer les groupes d'utilisateurs

Sous Linux, les groupes d'utilisateurs sont un moyen d'organiser plusieurs utilisateurs pour la gestion des autorisations. Chaque utilisateur a un groupe primaire et peut appartenir à plusieurs groupes secondaires. Explorons les groupes auxquels notre utilisateur actuel appartient :

id labex

Vous devriez voir une sortie similaire à :

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Cela montre que :

  • L'utilisateur labex a un identifiant utilisateur (UID) de 5000
  • Le groupe primaire de labex s'appelle également labex avec un identifiant de groupe (GID) de 5000
  • labex appartient à plusieurs groupes secondaires, notamment sudo, ssl-cert et public

Maintenant, affichons tous les groupes du système :

cat /etc/group | sort

La commande cat affiche le contenu d'un fichier, /etc/group est l'endroit où les informations sur les groupes sont stockées, et | sort trie la sortie par ordre alphabétique.

Pour voir uniquement les groupes liés à labex, utilisez :

cat /etc/group | grep -E "labex"

grep est un outil de recherche puissant. Cette commande recherche les lignes contenant "labex" dans le fichier des groupes.

Créer un nouveau groupe et ajouter un utilisateur à ce groupe

Créons un nouveau groupe appelé "developers" et ajoutons notre nouvel utilisateur "jack" à ce groupe :

Tout d'abord, créons le nouveau groupe :

sudo groupadd developers

Maintenant, ajoutons jack au groupe developers :

sudo usermod -aG developers jack

La commande usermod modifie les comptes utilisateurs. L'option -aG ajoute l'utilisateur à un groupe supplémentaire.

Pour vérifier que jack est maintenant membre du groupe developers, utilisez :

groups jack

Vous devriez voir "developers" figurant parmi les groupes de jack.

Ajouter un utilisateur au groupe sudo

Maintenant que nous avons créé l'utilisateur jack, donnons-lui des privilèges sudo en l'ajoutant au groupe sudo. Mais d'abord, comprenons pourquoi cela est important :

Ajouter un utilisateur au groupe sudo lui permet d'exécuter des commandes avec les privilèges de superutilisateur ou de root. Cela est utile pour plusieurs raisons :

  1. Sécurité : Cela permet à l'utilisateur d'effectuer des tâches administratives sans se connecter en tant qu'utilisateur root, ce qui est généralement considéré comme un risque pour la sécurité.
  2. Responsabilité : Lorsque les utilisateurs utilisent sudo, leurs actions sont enregistrées, fournissant une trace d'audit des actions administratives.
  3. Confort : Cela élimine le besoin de basculer vers le compte d'utilisateur root pour les tâches administratives occasionnelles.
  4. Contrôle granulaire : La configuration de sudo peut être personnalisée pour autoriser des utilisateurs spécifiques à exécuter uniquement certaines commandes avec des privilèges élevés.

Pour ajouter jack au groupe sudo, utilisez cette commande :

sudo usermod -aG sudo jack

Cette commande utilise usermod pour modifier le compte utilisateur. L'option -aG signifie "ajouter au groupe", donc elle ajoute jack au groupe sudo sans le supprimer des autres groupes.

Après avoir ajouté jack au groupe sudo, vous pouvez vérifier son appartenance au groupe avec :

sudo groups jack

Vous devriez voir sudo figurant parmi les groupes de jack.

En ajoutant jack au groupe sudo, nous lui avons donné la capacité d'effectuer des tâches administratives sur le système. Cependant, il est important de se rappeler que avec de grands pouvoirs viennent de grandes responsabilités. Les utilisateurs ayant des privilèges sudo doivent être de confiance et comprendre les implications de leurs actions, car elles peuvent potentiellement affecter l'ensemble du système.

Comprendre et manipuler les permissions et la propriété des fichiers

Sous Linux, les permissions et la propriété des fichiers sont cruciales pour la sécurité du système. Explorons ces concepts et apprenons à les manipuler.

  1. Tout d'abord, examinons les permissions actuelles dans le répertoire /home :
ls -l /home

Vous verrez une sortie similaire à :

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Analysons ce que cela signifie :

  • Le premier caractère indique le type de fichier (d pour répertoire, - pour fichier ordinaire)
  • Les 9 caractères suivants représentent les permissions pour le propriétaire, le groupe et les autres (dans cet ordre)
  • r signifie permission de lecture, w signifie permission d'écriture et x signifie permission d'exécution
  • Le nom d'utilisateur après ces caractères est le propriétaire du fichier, suivi du groupe propriétaire
  1. Maintenant, créons un nouveau fichier et changeons sa propriété :
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

La commande touch crée un fichier vide. Initialement, le fichier sera propriété de labex. Nous utilisons ensuite chown pour changer la propriété en faveur de jack, à la fois pour l'utilisateur et le groupe.

Pourquoi changer la propriété? Sous Linux, les propriétaires de fichiers ont des privilèges spéciaux sur leurs fichiers. En changeant la propriété, nous donnons à jack le contrôle total sur ce fichier.

  1. Enfin, modifions les permissions du fichier :
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

La commande chmod change les permissions du fichier. Le nombre 750 est une notation abrégée pour définir les permissions :

  • 7 (propriétaire) : Lecture (4) + Écriture (2) + Exécution (1) = 7
  • 5 (groupe) : Lecture (4) + Exécution (1) = 5
  • 0 (autres) : Aucune permission

Ce jeu de permissions signifie :

  • Le propriétaire (jack) peut lire, écrire et exécuter le fichier
  • Les membres du groupe jack peuvent lire et exécuter le fichier
  • Les autres n'ont aucune permission sur le fichier

Pourquoi définir ces permissions? C'est un jeu de permissions courant qui permet au propriétaire un accès complet, donne au groupe un accès limité et restreint l'accès pour tous les autres. C'est un équilibre entre l'utilisabilité et la sécurité.

Comprendre les permissions et la propriété des fichiers est crucial sous Linux. Cela vous permet de contrôler qui peut lire, modifier ou exécuter des fichiers, ce qui est fondamental pour la sécurité du système et la vie privée des utilisateurs. Au fur et à mesure que vous continuerez à travailler avec Linux, vous utiliserez fréquemment ces commandes pour gérer l'accès aux fichiers et aux répertoires.

Résumé

Félicitations! Vous avez terminé le laboratoire sur les groupes d'utilisateurs et les permissions de fichiers sous Linux. Vous avez appris à :

  1. Afficher les informations sur les utilisateurs
  2. Créer de nouveaux utilisateurs et comprendre les groupes primaires
  3. Explorer et modifier les groupes d'utilisateurs
  4. Créer de nouveaux groupes et ajouter des utilisateurs à ces groupes
  5. Accorder des privilèges sudo aux utilisateurs
  6. Afficher et comprendre les permissions de fichiers
  7. Changer la propriété des fichiers
  8. Modifier les permissions de fichiers

Ces compétences sont fondamentales pour la gestion des utilisateurs et la sécurité des fichiers dans un environnement Linux. Au fur et à mesure de votre progression dans le monde Linux, vous trouverez ces concepts essentiels pour l'administration système et la sécurité.