GNU/Linux >> Tutoriels Linux >  >> Linux

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

Présentation

Les systèmes multi-utilisateurs, tels que Linux, nécessitent la configuration et la gestion des autorisations de fichiers qui garantissent que seuls les utilisateurs autorisés ont accès aux fichiers auxquels ils sont censés accéder.

Si vous devez modifier une autorisation de fichier, utilisez le chmod commande. Il permet également de modifier l'autorisation du fichier de manière récursive pour configurer plusieurs fichiers et sous-répertoires à l'aide d'une seule commande.

Dans ce didacticiel, vous apprendrez à utiliser chmod de manière récursive et à modifier l'autorisation des fichiers sous Linux.

Prérequis

  • Une ligne de commande/fenêtre de terminal (Ctrl +Alt +T ou Ctrl +Alt+F2 )
  • Un compte utilisateur avec sudo privilèges (optionnel)
  • Un système Linux

Vérifier l'autorisation du fichier

Si vous devez vérifier les permissions du fichier dans le répertoire de travail, utilisez la commande :

ls –l

La sortie répertorie les autorisations de tous les fichiers du répertoire.

Par exemple, l'Exemple répertoire contient trois fichiers (test1.txt , test2.txt , et test3.txt ) avec les mêmes permissions (-rw-rw-r– ).

Les autorisations de fichiers répertoriées ci-dessus nous indiquent ce qui suit :

  • Le propriétaire a des privilèges de lecture et d'écriture
  • Le groupe de propriétaires a des privilèges de lecture et d'écriture
  • Autres utilisateurs avoir des privilèges de lecture

Modifier l'autorisation de manière récursive

Il est courant d'utiliser le chmod de base commande pour modifier l'autorisation d'un seul fichier. Cependant, vous devrez peut-être modifier l'autorisation de manière récursive pour tous les fichiers d'un répertoire.

Dans de tels cas, le chmod récursif (-R ou --recursive ) définit l'autorisation pour un répertoire (et les fichiers qu'il contient).

La syntaxe pour modifier l'autorisation du fichier de manière récursive est :

chmod -R [permission] [directory]

Par conséquent, pour définir le 755 autorisation pour tous les fichiers dans l'exemple répertoire, vous taperez :

sudo chmod -R 755 Example

La commande donne lire, écrire et exécuter privilèges au propriétaire (7 ) et lire et exécuter accès à tous les autres (55 ).

Modifier l'autorisation avec la commande find

Pour attribuer des autorisations distinctes aux répertoires et aux fichiers, vous pouvez utiliser la commande find commande.

La syntaxe de base inclut l'utilisation de find commande pour localiser les fichiers/répertoires puis les transmettre à chmod pour définir l'autorisation :

sudo find [directory] -type [d/f] -exec chmod [privilege] {} \;
  • Remplacer [directory] avec le chemin du répertoire contenant les fichiers et sous-répertoires que vous souhaitez configurer.
  • Précisez s'il recherche un répertoire -type d ou un fichier -type f .
  • Définir le fichier [privilege] avec le chmod commande utilisant le mode numérique ou symbolique.

Évitez d'attribuer des privilèges d'exécution aux fichiers. Une configuration courante comprendrait l'exécution des commandes suivantes :

sudo find Example -type d -exec chmod 755 {} \;
sudo find Example -type f -exec chmod 644 {} \;

Dans cet exemple, les répertoires ont 755 (u=rwx,go=rx ), tandis que les fichiers ont des privilèges 644 (u=rw,go=r).

Vous pouvez vérifier que les répertoires et les fichiers ont des paramètres d'autorisation différents en passant à l'Exemple répertoire (cd Example ) et lister le contenu (ls -l ). Le résultat devrait ressembler à celui ci-dessous :

Modifier l'autorisation de fichiers spécifiques de manière récursive

Combiner le find commande avec chmod peut également être utilisé pour modifier l'autorisation des fichiers d'un type spécifique.

La syntaxe de la commande pour modifier l'autorisation d'un type de fichier spécifique dans un répertoire est :

find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \;

Par exemple, pour rendre tous les .sh fichiers dans le répertoire courant exécutable , vous utiliseriez :

find . -name "*.sh" -exec chmod +x {} \;

Linux
  1. Comment afficher ou modifier l'ACL dans les fichiers Linux

  2. Comment changer l'autorisation sur un seul fichier ?

  3. Découvrez comment modifier les autorisations pour les fichiers et les dossiers

  4. Autorisations de fichiers sous Linux avec exemple

  5. Comment utiliser la commande chmod (changer de mode) sous Linux

Linux :Comment partager des fichiers sur un réseau local avec woof

Comment modifier les autorisations sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment compresser un fichier sous Linux