GNU/Linux >> Tutoriels Linux >  >> Linux

Gérer les autorisations de répertoire et de fichier avec chmod Recursive

Êtes-vous fatigué de devoir modifier manuellement les autorisations des fichiers et des répertoires ? Vous recherchez un moyen plus rapide et plus efficace de modifier les autorisations de vos fichiers et répertoires ? Si oui, alors vous êtes au bon endroit car, dans cet article, vous apprendrez à modifier les autorisations de fichiers et de répertoires à l'aide de la commande chmod récursivement !

Pas un lecteur? Regardez ce didacticiel vidéo associé ! Vous ne voyez pas la vidéo ? Assurez-vous que votre bloqueur de publicités est désactivé.

Lisez la suite pour en savoir plus !

Prérequis

Pour suivre, vous avez besoin d'un appareil Linux et d'un répertoire dont les autorisations de fichiers et de sous-répertoires sont disponibles pour vous exercer.

En savoir plus sur les utilisateurs et les groupes Linux

Les propriétaires et les groupes sont importants sous Linux, nécessaires pour gérer en toute sécurité les fichiers et les répertoires. Le propriétaire est celui à qui un fichier ou un répertoire est attribué, qui est le créateur, par défaut. Sous Linux, les fichiers et les répertoires appartiennent également à des groupes. Les utilisateurs et les groupes sont définis via le chown commande.

Dans la capture d'écran ci-dessous, le contenu surligné en vert indique l'utilisateur propriétaire du fichier ou du répertoire, mihail dans cet exemple. Le contenu surligné en bleu indique à quel groupe appartient le fichier ou le répertoire, propriété du staff groupe dans cet exemple.

Comprendre les autorisations de fichiers et de répertoires Linux

Les autorisations définissent les actions qu'un utilisateur ou un groupe peut effectuer sur un fichier ou un répertoire donné. Ils sont indiqués par une représentation en caractères et également affectés d'une valeur numérique.

  • Lire (r ou 4 ): Indique si un utilisateur ou un groupe peut lire le contenu du fichier ou du répertoire. L'autorisation de lecture est accordée par défaut à tous les fichiers et répertoires nouvellement créés pour toutes les parties.
  • Écrire (w ou 2 ): Indique si un utilisateur ou un groupe peut modifier le contenu d'un objet. Cette autorisation est accordée par défaut uniquement au propriétaire d'un fichier ou d'un répertoire.
  • Exécuter (x ou 1 ): Indique si un utilisateur ou un groupe peut exécuter un fichier ou exécuter des commandes dans un répertoire. L'autorisation d'exécution est accordée par défaut uniquement aux répertoires mais pas aux fichiers.

Si vous ne donnez pas à l'utilisateur (u ) exécuter des autorisations sur un répertoire, ils ne pourront pas lister le contenu car l'utilisateur ne pourra pas exécuter de commandes dans le répertoire !

Un exemple est montré ci-dessous, la sortie de la commande ls -l illustre les différents types d'autorisation. Ces autorisations précédées du d valeur, indiquez un répertoire.

Pourquoi alors y a-t-il apparemment trois ensembles d'autorisations pour chaque objet ? Le contrôle granulaire des autorisations est obtenu en divisant les autorisations dans les sections (appelées parties dans le cadre de ce didacticiel) répertoriées ci-dessous.

  • Utilisateur (u ): Le propriétaire d'un fichier ou d'un répertoire, surligné en bleu.
  • Groupe (g ): Membres du groupe auquel appartient un fichier ou un répertoire, surlignés en vert.
  • Autre (o ): Tous les utilisateurs et groupes supplémentaires non explicitement affectés sont surlignés en rouge.

Modification des autorisations de fichiers via la commande récursive chmod

Avec la bonne compréhension des autorisations Linux, lisez la suite pour savoir comment modifier les autorisations de fichiers. Les permissions sont modifiées via le chmod commande récursive comme indiqué dans les exemples ci-dessous.

1. Tout d'abord, vérifiez les autorisations actuelles avec le ls -l commande. Ici, le my_dir/index.js fichier est affiché.

2. Exécutez le chmod commande, en spécifiant la partie, a (tous), et les autorisations, rwx , ou lire/écrire/exécuter. La commande complète suit :chmod a=rwx index.js .

3. Comme vous pouvez le voir, en exécutant chmod récursif ne renvoie aucune sortie. Pour vérifier que les autorisations ont changé, exécutez la commande ls -l encore.

Définition des autorisations de fichiers via des valeurs numériques

Vous souvenez-vous des numéros associés aux autorisations telles que la lecture ou l'écriture ? Au lieu de spécifier les valeurs de caractères, vous pouvez spécifier des autorisations spécifiques via un nombre. En ajoutant les valeurs, vous créez une autorisation spécifique telle que 6 qui est une combinaison de write (2 ) et lire (4 ) autorisations.

Dans l'exemple ci-dessous, définissez les autorisations pour main.py fichier via la commande chmod 664 main.py . Les valeurs numériques se décomposent comme suit.

  • Utilisateur : Lecture et écriture (6 ).
  • Groupe : Lecture et écriture (6 ).
  • Autre : Lire (4 ).

Une fois les autorisations modifiées, vérifiez les nouvelles autorisations pour main.py fichier avec la commande ls -l .

Supprimer et ajouter des autorisations de fichiers

Les commandes non numériques que vous avez exécutées jusqu'à présent utilisaient le paramètre d'affectation (= ) avec chmod récursif, pour définir des autorisations explicites. Au lieu de cela, vous pouvez supprimer (- ) ou ajouter (+ ) des autorisations aux ensembles d'autorisations existants.

1. Tout d'abord, répertoriez les autorisations existantes pour le README.md fichier via la commande ls -l README.md .

2. Ensuite, ajoutez (+ ) exécuter (x ) autorisations à la partie utilisateur (u ), en supprimant (- ) lire (r ) autorisations de l'autre partie (o ) pour README.md , avec la commande suivante chmod u+x,o-r README.md . Les autorisations de partie différentes sont séparées par des virgules (, ).

3. Exécutez le ls -l README.md commande pour vérifier que les autorisations ont été modifiées.

Modification récursive des autorisations de fichiers et de répertoires

Bien que vous fassiez des progrès, vous n'agissez que sur un dossier à la fois. Que se passe-t-il si vous avez un grand nombre de fichiers pour lesquels modifier les autorisations ? Il est temps d'améliorer votre jeu et d'apprendre à modifier les autorisations pour plusieurs fichiers.

L'une des options pour modifier plusieurs fichiers consiste à exécuter chmod récursif avec le -R (récursive, et non la capitale). L'option récursive modifiera les autorisations pour tous les fichiers, y compris ceux des sous-répertoires, à l'intérieur d'un chemin donné.

1. Considérez la commande suivante, chmod -R a=r,u=rwx my_dir . La plupart des options que vous avez déjà vues auparavant.

Cette commande modifiera les autorisations pour tous les fichiers du répertoire, my_dir et sous-répertoires, via l'option récursive (-R ). Les fichiers sont mis en lecture (r ) pour tous (a ), avec des autorisations différentes pour l'utilisateur actuel (u ) défini sur les autorisations complètes (lecture, écriture, exécution).

Dans la capture d'écran ci-dessous, vous voyez les autorisations résultantes après l'exécution de la commande, qui n'a pas de sortie résultante.

2. Supposons que vous exécutiez la commande, chmod -R a=rwx my_dir , dans le même répertoire qu'auparavant, my_dir. Encore une fois, vous modifiez tous les fichiers dans my_dir, et ses sous-répertoires, pour définir donner tout (a ) autorisations complètes (lecture, écriture, exécution). Voici le résultat de la commande, sous la forme chmod récursif n'affiche pas la sortie.

3. Qu'en est-il de la méthode numérique ? Comme indiqué ci-dessous, la méthode récursive fonctionne également avec des autorisations numériques, chmod -R 770 my_dir . Ici, vous donnez des autorisations complètes à l'utilisateur et au groupe, mais aucune autorisation à l'autre partie.

4. Exécutez ls -l pour vérifier que my_dir les autorisations des fichiers et des sous-répertoires sont définies avec la méthode numérique.

Définir le comportement des fichiers et des dossiers via des autorisations spéciales

Les autorisations spéciales permettent plusieurs privilèges supplémentaires uniques à partir des ensembles d'autorisations standard. Il existe trois autorisations spéciales. Voici comment fonctionnent ces autorisations spéciales et comment vous pouvez les ajouter à un fichier ou un répertoire.

Configuration des autorisations SUID (utilisateur + S)

Communément noté SUID , il s'agit d'une autorisation spéciale pour l'utilisateur. Le SUID a une seule fonction :un fichier avec SUID s'exécute toujours en tant qu'utilisateur propriétaire du fichier, quel que soit celui qui exécute le fichier.

Par exemple, considérez index.js . Pour donner le SUID supplémentaire autorisation, exécutez chmod u+s index.js .

Maintenant, si vous exécutez ls -l index.js , vous constaterez que l'utilisateur a un s dans leurs permissions au lieu d'un x.

Configuration des autorisations SGID (Groupe + S)

Communément noté SGID , cette autorisation spéciale a deux fonctions :

  • Si défini pour un fichier, il permet au fichier d'être exécuté en tant que groupe propriétaire du fichier, quel que soit celui qui exécute le fichier.
  • Si défini pour un répertoire, tous les fichiers créés dans le répertoire auront leur groupe propriété définie sur celle du propriétaire du répertoire.

Entraînez-vous sur index.php dossier. Pour ajouter le SGID l'autorisation d'accès à ce fichier, exécutez la commande suivante :chmod g+s index.php .

Maintenant, si vous exécutez ls -l index.php , vous constaterez que le groupe a un s dans leurs autorisations.

Passez à un répertoire :my_dir . Vous pouvez ajouter le SGID l'autorisation d'accéder à ce répertoire à l'aide de la commande suivante :chmod g+s my_dir . Tous les fichiers créés dans ce répertoire auront désormais leur groupe propriété définie sur le propriétaire du répertoire. Vous pouvez vérifier les nouvelles autorisations du répertoire en utilisant ls -ld my_dir (le d paramètre limite la sortie aux répertoires uniquement).

Modification de l'autorisation Sticky Bit

La dernière autorisation spéciale est également connue sous le nom de "bit collant". Cette autorisation n'affecte pas les fichiers individuels. Mais, au niveau du répertoire, cela limite la suppression des fichiers. Seul le propriétaire d'un fichier peut supprimer un fichier dans ce répertoire.

Ajoutez le sticky bit à l'ancien familier my_dir annuaire. Pour cela, exécutez la commande comme suit :chmod +t my_dir .

Notez que, pour ajouter le sticky bit, vous n'indiquez pas l'autre group(o) avant le +t .

Lorsque vous cochez my_dir de nouvelles autorisations, vous verrez un T majuscule dans l'autre autorisations, comme indiqué dans la capture d'écran ci-dessous.

Conclusion

Toutes nos félicitations! Vous avez couvert de nombreux sujets sur chmod récursif. Vous êtes maintenant prêt à vous attaquer à tous les problèmes d'autorisation embêtants qui surviennent avec le tout-puissant chmod outil. Vous avez même appris à tirer parti de la puissance du récursif (-R ).

Comment comptez-vous implémenter chmod fonctionnalité polyvalente à votre avantage la prochaine fois que vous aurez besoin de gérer les autorisations de fichiers ou de répertoires ?


Linux
  1. Autorisations de fichiers sous Linux avec exemple

  2. UNIX / Linux :Guide du débutant sur les autorisations de fichiers et de répertoires (umask, chmod, lecture, écriture, exécution)

  3. Comment gérer les autorisations/propriétés des fichiers et des répertoires sous Linux

  4. Préserver les autorisations de fichiers et de dossiers avec rsync

  5. Comprendre les autorisations UNIX et les types de fichiers

Comment modifier les autorisations de fichiers de manière récursive avec chmod sous Linux

Commande Chmod sous Linux (autorisations de fichiers)

Autorisations et propriété des fichiers Linux expliquées avec des exemples

Exemples de commandes Linux chmod

Conserver les autorisations de fichiers avec Git

Besoin de corriger les autorisations de fichiers dans le répertoire personnel d'un utilisateur