Normalement, un utilisateur qui crée le fichier a le droit d'accéder et de modifier les autorisations de fichier. De plus, l'utilisateur racine a par défaut tous les privilèges pour accéder à chaque fichier du système.
Dans cet article, nous expliquerons comment modifier les autorisations de répertoire récursivement dans un système d'exploitation Linux en utilisant les deux méthodes différentes. Tout d'abord, nous donnerons un aperçu rapide de la façon de voir et de modifier les autorisations de fichier, puis nous discuterons de la façon de modifier les autorisations récursives.
Afficher les autorisations de fichiers actuels
Pour examiner les autorisations actuelles d'un fichier ou d'un répertoire, exécutez la commande suivante dans votre terminal:
$ ls -l
Par exemple, si nous courons LS-L, Nous recevrions une sortie similaire:
Dans la liste ci-dessus, si le premier caractère d'une ligne commence par «D», il indique qu'il s'agit d'un répertoire tandis que si cela commence par «-» indique qu'il s'agit d'un fichier. Après cela, les neuf caractères suivants montrent les autorisations du fichier ou d'un répertoire. Ces neuf caractères sont en fait regroupés en trois ensembles pour l'utilisateur, le groupe et le propriétaire respectivement. De plus, chaque ensemble comprend trois types d'autorisations qui sont R, W et X pour «lire», «écrire» et «exécuter» les autorisations respectivement.
Changer les autorisations
Dans Linux, pour modifier les autorisations d'un fichier ou d'un répertoire, la commande chmod est utilisée. Cependant, pour modifier l'autorisation, vous devez être le propriétaire du fichier ou l'utilisateur racine.
La syntaxe est:
$ chmod [référence] [Opérateur] [MODE] File1 Fichier2…
Où
Modification des autorisations récursivement en utilisant -r
Vous avez peut-être remarqué que si vous appliquez les autorisations via la commande chmod ci-dessus, ces autorisations sont appliquées uniquement au fichier ou au répertoire spécifié dans la commande. Il ne sera pas appliqué aux sous-répertoires ou aux fichiers dans un répertoire.
CHMOD vous permet de modifier l'autorisation de plusieurs fichiers et sous-répertoires dans un répertoire à l'aide de l'option -r comme suit:
$ chmod -r [référence] [opérateur] [mode] fichier…
Disons que les sous-répertoires dans le répertoire des téléchargements ont les autorisations suivantes comme indiqué dans la capture d'écran suivante.
Si nous affichons l'un des fichiers nommés sous-répertoire, il contient des fichiers avec les autorisations suivantes.
Modifions maintenant l'autorisation de notre répertoire parent «Fichiers» en lui attribuant l'autorisation d'écriture comme suit.
$ chmod u + w fichiers
Où vous représentez «l'utilisateur», le + pour «ajouter» et le w pour «écrire».
Après avoir attribué l'autorisation d'écriture, exécutez le «ls -l«Commande, vous pouvez voir que la nouvelle autorisation a été attribuée au répertoire« Fichiers ».
Cependant, cette commande applique uniquement les autorisations au répertoire et non les fichiers en dessous. Pour vérifier cela, accédez au répertoire des fichiers à l'aide du «CD" commande. Ensuite, exécutez le "ls -l" commande. Vous pouvez voir dans la capture d'écran suivante, les autorisations ont inchangé.
Appliquons l'autorisation récursive à l'aide de la commande suivante:
$ chmod -r u + w fichiers
Il appliquera non seulement l'autorisation au répertoire des «fichiers» parent, mais aussi aux fichiers en vertu de l'informatique.
Maintenant, pour vérifier si l'autorisation est appliquée avec succès, accédez au répertoire "Fichiers" à l'aide du "CD«Commande puis exécutez le«ls -l" commande. À partir de l'entrée suivante, vous pouvez voir que les autorisations ont appliqué avec succès tous les fichiers sous le répertoire parent.
De la même manière, vous pouvez également attribuer de manière récursive les autorisations sous forme absolue. Par exemple, pour attribuer la lecture, écrire et exécuter l'autorisation uniquement à l'utilisateur, la commande suivante peut être utilisée:
$ chmod -r 700
Modification de l'autorisation récursivement à l'aide de la commande Find
Lorsque ChMOD avec -r est utilisé pour appliquer l'autorisation dans un répertoire, il attribue la même autorisation à tous les fichiers et sous-répertoires en vertu de l'informatique. Cependant, vous pouvez parfois donner des autorisations distinctes aux fichiers et répertoires. Un exemple de cela serait d'appliquer l'autorisation d'exécution sur le répertoire mais pas sur les fichiers car les fichiers n'ont pas besoin de l'autorisation d'exécution. Généralement, les autorisations suivantes sont attribuées aux fichiers et répertoires.
Pour les répertoires: 755 ou drwxr-xr-xxSi tel est le cas, pour attribuer récursivement l'autorisation aux répertoires, utilisez l'une des formulaires absolus ou symboliques:
$ Find / Path / To / Directory -Type D -exec Chmod 755 +
$ find / path / to / répertoire -type d -exec chmod u = rwx, go = rx \;
Alors que pour attribuer des autorisations récursivement aux fichiers, utilisez l'une des formulaires absolus ou symboliques:
$ Find / Path / To / Directory -Type F -exec Chmod 644 +
$ find / path / vers / répertoire -type f -exec chmod u = rw, go = r \;
Assurez-vous de remplacer les autorisations par vos ensembles d'autorisation requis.
C'est ainsi que vous pouvez modifier les autorisations de répertoire dans Linux récursivement. Pour appliquer les mêmes autorisations récursives à tout le fichier et le sous-répertoire, utilisez l'option -r Option pour appliquer des autorisations récursives sur les fichiers et les sous-répertoires séparément, utilisez la commande find.