Maîtriser les autorisations Linux : Une plongée approfondie dans Chmod et Chown

Avez-vous déjà vous retrouvé pris au piège dans le monde déconcertant des permissions Linux? Si vous vous demandez toujours qui a le droit de lire, écrire ou exécuter quoi, eh bien, vous êtes au bon endroit. Démystifiez l’art complexe des permissions Linux, en mettant particulièrement l’accent sur le duo puissant : chmod et chown!

Dans ce tutoriel, vous vous équiperez des compétences nécessaires pour contrôler l’accès à vos fichiers et répertoires en toute confiance.

Maintenant, retroussez vos manches et domptez les permissions Linux comme un champion !

Prérequis

Avant de vous lancer dans cette plongée approfondie dans les permissions Linux, assurez-vous d’avoir une machine Linux pour maîtriser les commandes chmod et chown. Ce tutoriel utilise Ubuntu 22.04 LTS (Jammy Jellyfish).

Comprendre les commandes chmod et chown

Dans le royaume des permissions Linux, les commandes chmod et chown détiennent un pouvoir significatif. Comprendre comment utiliser ces commandes efficacement est crucial pour tout utilisateur Linux, des débutants aux administrateurs chevronnés.

Les deux commandes offrent de nombreuses façons de contrôler votre système Linux, mais voici les bases de ce que chacune peut faire :

  • chmod – Cette commande est la clé pour gérer les permissions des fichiers et répertoires dans Linux, vous permettant de spécifier qui peut lire, écrire et exécuter un fichier. En utilisant une combinaison de symboles et de codes numériques, vous pouvez accorder ou restreindre l’accès aux utilisateurs, groupes et autres.
  • chown – Avec cette commande, vous pouvez changer la propriété des fichiers et des répertoires. Cette commande est inestimable lorsque vous devez transférer le contrôle administratif ou modifier l’association entre un fichier et un utilisateur/groupe.

Que vous protégiez des données sensibles ou simplifiiez l’accès pour une équipe, ces commandes sont vos fidèles compagnons dans le monde des opérations de fichiers Linux.

Continuez à lire et plongez encore plus profondément dans les subtilités de ces commandes.

Listing des fichiers et visualisation des permissions

Avant de modifier les permissions et la propriété avec les commandes chmod et chown, la première étape est de lister les fichiers et de visualiser leurs permissions.

Comme trouver un livre dans une bibliothèque, sous Linux, vous aurez souvent besoin de consulter une liste de fichiers avec leurs permissions associées. Cette connaissance est cruciale pour une gestion de fichiers efficace.

Pour afficher les permissions d’un fichier ou d’un répertoire :

Ouvrez un terminal et exécutez la commande ls suivante pour lister tous les fichiers et répertoires dans le répertoire de travail actuel dans un format long (-l)

ls -l

Le format long fournit des informations détaillées sur chaque fichier ou répertoire, comme indiqué ci-dessous.

Ces informations incluent les permissions, le nombre de liens, le propriétaire, le groupe, la taille et l’heure de modification. Mais votre attention est actuellement portée sur les permissions du fichier.

Viewing a list of files and directories

Trois autorisations clés régissent chaque fichier et répertoire : lecture (r), écriture (w) et exécution (x). Chacune dicte comment les utilisateurs interagissent avec le contenu de chaque fichier et répertoire.

De plus, chacune de ces autorisations est appliquée à trois catégories distinctes de propriété : propriétaire, groupe et autres (utilisateurs qui ne sont ni propriétaires ni membres du groupe).

Le texte suivant illustre chaque partie des autorisations de fichier :

  • Le premier caractère indique un fichier () ou un répertoire (d).
  • La première partie (rw-) – Fournit au propriétaire les autorisations de lecture et d’écriture, mais pas d’exécution.
  • La deuxième partie (rw-) – Accorde au groupe les autorisations de lecture et d’écriture, mais pas d’exécution.
  • La dernière partie (r–) – Autorise les autres à lire mais pas à écrire ou exécuter.
Illustrating file permissions

Modification des autorisations via la commande chmod : Mode symbolique

En élargissant votre compréhension des autorisations de fichier, plongez dans un outil puissant pour les modifier. Imaginez ajuster qui peut accéder, modifier ou exécuter un fichier ou répertoire avec précision. La commande chmod (changer le mode) vous donne le pouvoir de prendre le contrôle de votre système Linux.

Quand vous avez besoin d’une manière flexible et expressive de contrôler précisément l’accès à vos fichiers et répertoires, le mode symbolique fera l’affaire.

Pour modifier les autorisations avec la commande chmod via le mode symbolique, suivez ces étapes :

1. Exécutez la commande who ci-dessous pour créer un nouveau fichier (>) appelé user.txt en tant qu’utilisateur non privilégié, contenant une liste des utilisateurs actuellement connectés sur votre machine Linux.

Cette commande ne fournit pas de sortie dans le terminal, mais vous vérifierez les autorisations du fichier à l’étape suivante.

who > user.txt

2. Ensuite, exécutez la commande ci-dessous pour afficher les autorisations du fichier user.txt.

ls -l user.txt

Vous pouvez voir ci-dessous les autorisations par défaut du fichier, le propriétaire, le jour et le mois de création, ainsi que le nom du fichier.

Prenez note de l’autorisation actuelle du fichier, car vous comparerez plus tard. Votre attention pour le moment est sur les autorisations de l’utilisateur (rw-).

Viewing the file’s default permissions

3. Maintenant, exécutez la commande suivante pour supprimer (-) l’autorisation d’écriture (w) pour le propriétaire (u), en laissant inchangée toute autre autorisation pour les autres catégories.

Le tableau suivant explique ce que chaque symbole représente :

User Symbol Details Operation Symbol Details Permission Symbol Details
u Owner + Add permissions r Read
g Group Remove permissions w Write
o Others = Set permissions explicitly x Execute

En cas de succès, la commande chmod n’a aucune sortie dans le terminal, ce qui s’applique tout au long de ce tutoriel.

chmod u-w user.txt

4. Après avoir modifié les autorisations, exécutez la commande ci-dessous pour voir les autorisations du fichier user.txt.

ls -l user.txt

Comparez les autorisations de fichier que vous avez notées à l’étape deux (rw-) avec celles ci-dessous. Remarquez que le propriétaire (u) a maintenant seulement l’autorisation de lecture (r–).

Viewing modified owner permission

5. Maintenant, exécutez chaque commande ci-dessous pour effectuer les actions suivantes :

  • Ajoutez (+), écrivez (w), et exécutez (x) les permissions pour le propriétaire (u) sur le même fichier user.txt.
  • Consultez les informations du fichier user.txt pour vérifier les permissions modifiées.
chmod u+wx user.txt
ls -l user.txt

Comme indiqué ci-dessous, l’utilisateur a maintenant les permissions de lecture, écriture et exécution (rwx) pour le fichier user.txt.

Viewing modified owner permissions

6. Au lieu d’ajouter, exécutez la commande chmod ci-dessous pour supprimer (-) ce qui suit :

  • Permission d’exécution (x) pour le propriétaire (u).
  • Permission d’écriture (w) pour le groupe (g).
  • Toutes les permissions (rwx) pour les autres (o).

Cette commande vous permet de supprimer simultanément des permissions de différentes catégories avec une seule commande.

Cette fois, l’option -v indique à chmod d’afficher un message sur les modifications apportées par l’opération.

chmod -v u-x,g+w,o-rwx user.txt
Viewing modified permissions for owner, group, and others

7. Ensuite, exécutez la commande suivante pour effectuer les opérations suivantes :

  • Ajoutez (+) des permissions de lecture (r) à toutes les catégories.
  • Supprimez (-) les permissions d’écriture et d’exécution (wx) pour toutes (a) les catégories.
chmod a+r,a-wx user.txt

8. Maintenant, exécutez la commande ci-dessous pour voir les permissions mises à jour du fichier user.txt.

ls -l user.txt
Viewing updated permissions for all categories

? En outre, vous pouvez modifier la même autorisation pour les trois catégories (utilisateur, groupe et autres) avec les commandes suivantes :

chmod ugo-r – Supprime (-) les permissions de lecture (r) pour les trois catégories (ugo).

chmod ugo+r – Ajoute (+) les permissions de lecture (r) pour les trois catégories (ugo).

9. Enfin, exécutez les commandes ci-dessous pour effectuer les actions suivantes:

  • chmod – Définit (=) les permissions de lecture et écriture (rw) pour le propriétaire et le groupe, et supprime les permissions des autres (o=).
    Le symbole = vous permet de définir explicitement les permissions et de remplacer toutes les permissions existantes. Si aucune permission n’est spécifiée après le symbole =, toutes les permissions pour cette catégorie sont supprimées.
  • ls – Visualisez les changements que vous avez apportés aux permissions du fichier user.txt.
chmod ug=rw,o= user.txt
ls -l user.txt
Viewing the modified permissions set

Modification des droits d’accès en utilisant la commande chmod: Mode octal

Imaginez avoir la capacité de définir rapidement et précisément les permissions pour vos fichiers sans les complexités de la notation symbolique. Le mode octal (notation en base huit) deviendra votre nouvelle méthode préférée pour gérer les permissions.

En mode octal (notation en base huit), les permissions sont représentées à l’aide d’un nombre à quatre ou trois chiffres, de 0 à 7. Chaque nombre correspond à un ensemble spécifique de permissions pour le propriétaire, le groupe et les autres, comme suit:

  • Lecture (r) = 4
  • Écriture (w) = 2
  • Exécution (x) = 1
  • Aucune permission (-) = 0

Pour voir comment le mode octal fonctionne dans la gestion des permissions de fichier, suivez ces étapes :

1. Exécutez la commande chmod ci-dessous pour ajouter les autorisations suivantes (664) au fichier user.txt:

  • Propriétaire – lecture (4) + écriture (2) + exécution (0) = 6
  • Groupe – lecture (4) + écriture (2) + exécution (0) = 6
  • Autres – lecture (4) + écriture (0) + exécution (0) = 4

Lors de l’utilisation d’un nombre à quatre chiffres avec la commande chmod pour les permissions de fichier sous Linux, le chiffre de tête (le plus à gauche) représente des permissions spéciales, telles que setuid, setgid et le bit collant. Les trois chiffres suivants représentent respectivement les permissions standard pour le propriétaire, le groupe et les autres.

Mais lors de l’utilisation d’un nombre à trois chiffres, le premier chiffre représente les permissions du propriétaire du fichier (u), le deuxième pour le groupe du fichier (g), et le dernier pour les autres (o).

Dans de nombreux cas, surtout lorsque l’on ne traite pas avec des permissions spéciales, vous ne verrez peut-être que la notation à trois chiffres. Le zéro initial, qui indique la notation octale, peut être implicite et donc omis. Comme dans l’exemple ci-dessous, au lieu de 0664, vous utilisez 664.

chmod 664 user.txt

2. Ensuite, exécutez la commande ci-dessous pour afficher les autorisations du fichier user.txt.

ls -l user.txt

Dans la sortie ci-dessous, vous pouvez voir les autorisations définies pour le fichier user.txt sont en mode symbolique, ce qui est équivalent à 664 en mode octal.

Viewing permissions modified via octal mode

3. Maintenant, exécutez la commande stat ci-dessous pour afficher un ensemble complet de statistiques sur le fichier user.txt, y compris les autorisations en modes symbolique et octal.

stat user.txt

Sur la propriété Accès, comme indiqué ci-dessous, vous verrez le mode octal et symbolique associé aux autorisations de fichier du fichier user.txt.

Avec ces informations, vous améliorez votre compréhension de l’ajustement des autorisations en utilisant le mode octal.

Viewing the octal and symbolic representations of permissions

Changement de propriétaire de fichier avec la commande chown

Alors que les autorisations dictent quelles actions peuvent être effectuées sur un fichier ou un répertoire, vous pouvez spécifier qui a le droit de définir ou de modifier ces autorisations en changeant la propriété.

La commande chown (changement de propriétaire) est la commande principale pour gérer la propriété des fichiers et des répertoires. Comme la commande chmod, la commande chown est une commande réservée au superutilisateur – seul l’utilisateur root peut changer la propriété d’un fichier ou d’un répertoire.

Pour gérer la propriété avec la commande chown, suivez les étapes ci-dessous :

1. Exécutez les commandes ci-dessous pour créer un utilisateur (useradd) nommé bill et fournir un mot de passe fort.

Vous devez avoir plus d’un utilisateur sur votre machine locale autre que l’utilisateur par défaut, qui est vous, pour voir comment fonctionne le changement de propriété.

sudo useradd bill
sudo passwd bill
Adding a user and updating user password

2. Ensuite, exécutez chaque commande ci-dessous pour écrire une liste des utilisateurs actuellement connectés (who) dans un fichier appelé new.txt en tant qu’utilisateur non privilégié, et affichez (ls) son propriétaire et ses autorisations.

who > new.txt
ls -l  new.txt

Ci-dessous, la sortie montre que le propriétaire du fichier est mercy.

Viewing the owner of the new.txt file

3. Une fois le propriétaire vérifié, exécutez la commande chown ci-dessous pour changer le propriétaire du fichier new.txt en bill.

Tout comme la commande chmod, la commande chown ne fournit pas de sortie, mais vous vérifierez le changement de propriétaire à l’étape suivante.

sudo chown bill new.txt

4. Maintenant, exécutez la commande suivante pour afficher (ls) le nouveau propriétaire du fichier new.txt.

ls -l  new.txt

La sortie ci-dessous confirme que vous avez changé avec succès le propriétaire du fichier new.txt en bill, qui a maintenant le contrôle et l’autorité sur ce fichier.

Viewing the new owner of the new.txt file

Enforcer la Commande chown pour Modifier la Propriété de Groupe

Dans le système de fichiers Linux, chaque fichier et répertoire est associé non seulement à un propriétaire individuel, mais aussi à un groupe. Tout comme un seul instrument mal accordé peut perturber tout l’ensemble, une propriété incorrecte peut entraîner des problèmes potentiels.

Devriez-vous vous inquiéter ? Pas vraiment. L’association de groupe permet une approche en couches des autorisations de fichier. Cette approche permet à plusieurs utilisateurs de collaborer et de partager l’accès en fonction de l’appartenance au groupe.

Pour modifier la propriété du groupe, suivez les étapes suivantes :

1. Exécutez la commande ci-dessous pour afficher le groupe associé au fichier new.txt.

ls -l  new.txt
Viewing the group associated with the new.txt file

2. Ensuite, exécutez les commandes ci-dessous, qui ne fournissent pas de sortie mais effectuent les actions suivantes :

  • Créez un groupe (groupadd) appelé developers.
  • Changez la propriété du groupe (chown) du fichier new.txt à developers.
sudo groupadd developers
sudo chown :developers new.txt

? En option, au lieu d’une approche individuelle, utilisez les commandes suivantes pour changer récursivement le propriétaire et la propriété du groupe d’un fichier ou d’un répertoire entier.

sudo chown -R john:finance-group user.txt

sudo chown -R john:finance-group ~/Desktop

3. Maintenant, réexécutez la commande suivante pour afficher (ls) la nouvelle propriété du groupe du fichier new.txt.

ls -l  new.txt

Ci-dessous, la sortie confirme que vous avez changé avec succès la propriété du groupe du fichier new.txt en developers.

Viewing the new group ownership of the new.txt file

Modification de la propriété du fichier via les UID et GID numériques

Alors que les noms d’utilisateur et les noms de groupe offrent un moyen lisible par l’homme d’identifier les propriétaires de fichiers, chaque utilisateur et groupe est également associé à des identifiants numériques uniques.

Ces identifiants numériques uniques sont l’ID utilisateur (UID) et l’ID de groupe (GID). Ils fournissent une manière non ambiguë de définir la propriété du fichier dans des environnements avec des noms d’utilisateur ou de groupe qui se chevauchent ou sont similaires.

Pour changer la propriété en utilisant les UID et GID numériques, suivez ces étapes :

1. Exécutez la commande ci-dessous pour afficher les informations (ls) sur le fichier new.txt.

L’option -n indique à la commande ls d’afficher les UID et GID numériques au lieu de les résoudre en leurs noms d’utilisateur et de groupe correspondants.

ls -n new.txt

Notez l’UID et le GID associés au fichier new.txt, car vous en aurez besoin pour effectuer des comparaisons à l’étape suivante.

Viewing the UID and GID associated with the new.txt file

2. Ensuite, exécutez les commandes getent suivantes pour obtenir l’UID et le GID de l’utilisateur et du groupe que vous souhaitez définir comme propriétaire de votre fichier.

Assurez-vous de remplacer les espaces réservés <username> et <groupname> par votre nom d’utilisateur et le nom de groupe souhaité.

getent passwd <username>
getent group <groupname>

Prenez note de l’UID (c’est-à-dire 1002) et du GID (c’est-à-dire 1005) dans la sortie suivante, car vous en aurez besoin pour changer la propriété à l’étape suivante.

Par défaut, lorsqu’un utilisateur est créé sous Linux, un groupe portant le même nom que l’utilisateur est également créé. Ce groupe sert de groupe primaire de l’utilisateur et est automatiquement ajouté à ce groupe primaire.

Ainsi, le GID de l’utilisateur john diffère du GID du groupe finance. À moins que l’utilisateur ne soit explicitement ajouté au groupe, leurs GIDs respectifs restent différents.

Viewing UID and GID for user john and group finance

3. Ensuite, exécutez la commande suivante pour changer la propriété du fichier new.txt ainsi que la propriété du groupe. Assurez-vous de remplacer 1002 et 1005 par ceux que vous avez notés à l’étape deux.

? Notez que l’utilisation d’UID et de GID numériques peut être moins lisible que les noms d’utilisateur et de groupe. Assurez-vous donc d’utiliser les bons numéros pour éviter des changements non intentionnels.

sudo chown 1002:1005 new.txt

4. Enfin, réexécutez la commande ci-dessous pour afficher les informations (ls) sur le fichier new.txt et vérifiez les modifications apportées à la propriété du fichier.

ls -n new.txt

Comparez l’UID et le GID que vous avez notés à l’étape un avec ceux ci-dessous. Remarquez que la propriété du nouveau fichier a été modifiée de 1001:1003 à 1002:1005.

Verifying the new UID and GID for the new.txt file

Conclusion

Vous venez de vous lancer dans une exploration approfondie des permissions Linux, acquérant une maîtrise des commandes cruciales telles que chmod et chown. Tout au long de ce tutoriel, vous êtes devenu compétent dans la modification des permissions en utilisant les modes symboliques et octaux.

Vous avez également acquis les compétences nécessaires pour gérer la propriété des fichiers et les affectations de groupe, que ce soit par nom ou à travers les UID et GID numériques. Avec cette expertise nouvellement acquise dans chmod et chown, vous disposez désormais d’outils puissants pour régir l’accès et la propriété au sein de votre système Linux.

Mais pourquoi ne pas renforcer encore davantage votre compétence Linux ? Peut-être envisager d’approfondir les méthodes de contrôle d’accès avancées, y compris les listes de contrôle d’accès (ACL) ? Visez un contrôle encore plus précis sur les permissions de fichiers et de répertoires !

Source:
https://adamtheautomator.com/chmod-and-chown/