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 lechmod
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 {} \;