GNU/Linux >> Tutoriels Linux >  >> Linux

Comprendre les autorisations de fichiers Linux

Sous Linux, les autorisations, les attributs et la propriété des fichiers contrôlent le niveau d'accès des processus système et des utilisateurs aux fichiers. Cela garantit que seuls les utilisateurs et processus autorisés peuvent accéder à des fichiers et répertoires spécifiques.

Autorisations de fichier Linux #

Le modèle d'autorisations de base de Linux fonctionne en associant chaque fichier système à un propriétaire et à un groupe et en attribuant des droits d'accès d'autorisation à trois classes d'utilisateurs différentes :

  • Le propriétaire du fichier.
  • Les membres du groupe.
  • Autres (tous les autres).

La propriété du fichier peut être modifiée à l'aide du chown et chgrp commandes.

Trois types d'autorisations de fichiers s'appliquent à chaque classe d'utilisateurs :

  • L'autorisation de lecture.
  • L'autorisation d'écriture.
  • L'autorisation d'exécution.

Ce concept vous permet de contrôler quels utilisateurs peuvent lire le fichier, écrire dans le fichier ou exécuter le fichier.

Pour afficher les autorisations de fichier, utilisez le ls commande :

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Le premier caractère indique le type de fichier. Il peut s'agir d'un fichier normal (- ), répertoire (d ), un lien symbolique (l ), ou d'autres types de fichiers spéciaux. Les neuf caractères suivants représentent les autorisations de fichier, trois triplets de trois caractères chacun. Le premier triplet affiche les autorisations du propriétaire, le second les autorisations du groupe et le dernier triplet affiche les autorisations de tous les autres.

Dans l'exemple ci-dessus (rw-r--r-- ) signifie que le propriétaire du fichier a les droits de lecture et d'écriture (rw- ), le groupe et les autres n'ont que des autorisations de lecture (r-- ).

Les autorisations de fichier ont une signification différente selon le type de fichier.

Chacun des trois triplets d'autorisation peut être composé des caractères suivants et avoir des effets différents, selon qu'ils sont définis sur un fichier ou sur un répertoire :

Effet des autorisations sur les fichiers

Autorisation Personnage Signification du fichier
Lire - Le fichier n'est pas lisible. Vous ne pouvez pas afficher le contenu du fichier.
r Le fichier est lisible.
Écrire - Le fichier ne peut pas être changé ou modifié.
w Le fichier peut être changé ou modifié.
Exécuter - Le fichier ne peut pas être exécuté.
x Le fichier peut être exécuté.
s Si trouvé dans le user triplet, il définit le setuid bit. Si trouvé dans le group triplet, il définit le setgid bit. Cela signifie également que x flag est défini.
Lorsque le setuid ou setgid les drapeaux sont définis sur un fichier exécutable, le fichier est exécuté avec les privilèges du propriétaire et/ou du groupe du fichier.
S Identique aux s , mais le x l'indicateur n'est pas défini. Ce drapeau est rarement utilisé sur les fichiers.
t Si trouvé dans les others triplet, il définit le sticky bit.
Cela signifie également que x drapeau est défini. Ce drapeau est inutile sur les fichiers.
T Identique à, t mais le x l'indicateur n'est pas défini. Ce drapeau est inutile sur les fichiers.

Effet des autorisations sur les répertoires (dossiers)

Les répertoires sont des types spéciaux de fichiers qui peuvent contenir d'autres fichiers et répertoires.

Autorisation Personnage Signification sur Annuaire
Lire - Le contenu du répertoire ne peut pas être affiché.
r Le contenu du répertoire peut être affiché.
(par exemple, vous pouvez lister les fichiers à l'intérieur du répertoire avec ls .)
Écrire - Le contenu du répertoire ne peut pas être modifié.
w Le contenu du répertoire peut être modifié.
(par exemple, vous pouvez créer de nouveaux fichiers, supprimer des fichiers ..etc.)
Exécuter - Le répertoire ne peut pas être modifié.
x Le répertoire peut être parcouru en utilisant cd .
s Si trouvé dans le user triplet, il définit le setuid bit. Si trouvé dans le group triplet il définit le setgid bit. Cela signifie également que x drapeau est défini. Lorsque le setgid est défini sur un répertoire, les nouveaux fichiers créés dans celui-ci héritent de l'ID de groupe de répertoires (GID) au lieu de l'ID de groupe principal de l'utilisateur qui a créé le fichier.
setuid n'a aucun effet sur les répertoires.
S Identique aux s , mais le x l'indicateur n'est pas défini. Ce drapeau est inutile sur les répertoires.
t Si trouvé dans les others triplet, il définit le sticky bit.
Cela signifie également que x drapeau est défini. Lorsque le sticky bit est défini sur un répertoire, seul le propriétaire du fichier, le propriétaire du répertoire ou l'utilisateur administratif peut supprimer ou renommer les fichiers dans le répertoire.
T Identique à t , mais le x l'indicateur n'est pas défini. Ce drapeau est inutile sur les répertoires.

Modification des autorisations de fichier #

Les autorisations de fichier peuvent être modifiées à l'aide de chmod commande. Seul root, le propriétaire du fichier ou l'utilisateur disposant des privilèges sudo peut modifier les autorisations d'un fichier. Soyez très prudent lorsque vous utilisez chmod , en particulier lors de la modification récursive des autorisations. La commande peut accepter un ou plusieurs fichiers et/ou répertoires séparés par un espace comme arguments.

Les autorisations peuvent être spécifiées à l'aide d'un mode symbolique, d'un mode numérique ou d'un fichier de référence.

Méthode symbolique (texte) #

La syntaxe du chmod commande lors de l'utilisation du mode symbolique a le format suivant :

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

Le premier ensemble de drapeaux ([ugoa…] ), indicateurs d'utilisateurs, définit les classes d'utilisateurs pour lesquelles les autorisations sur le fichier sont modifiées.

  • u - Le propriétaire du fichier.
  • g - Les utilisateurs qui sont membres du groupe.
  • o - Tous les autres utilisateurs.
  • a - Tous les utilisateurs, identiques à ugo .

Lorsque le drapeau des utilisateurs est omis, il est par défaut a .

Le deuxième ensemble de drapeaux ([-+=] ), les indicateurs d'opération, définissent si les autorisations doivent être supprimées, ajoutées ou définies :

  • - - Supprime les autorisations spécifiées.
  • + - Ajoute des autorisations spécifiées.
  • = - Remplace les autorisations actuelles par les autorisations spécifiées. Si aucune autorisation n'est donnée après le = symbole, toutes les autorisations de la classe d'utilisateurs spécifiée sont supprimées.

Les permissions (perms... ) sont définis explicitement à l'aide de zéro ou d'une ou plusieurs des lettres suivantes :r , w , x , X , s , et t . Utiliser une seule lettre de l'ensemble u , g , et o lors de la copie des autorisations d'une classe d'utilisateurs à une autre.

Lors de la définition des autorisations pour plusieurs classes d'utilisateurs ([,…] ), utilisez des virgules (sans espaces) pour séparer les modes symboliques.

Voici quelques exemples d'utilisation du chmod commande en mode symbolique :

  • Autorisez les membres du groupe à exécuter le fichier, mais pas à le lire ni à y écrire :

    chmod g=x filename
  • Supprimez l'autorisation d'écriture pour tous les utilisateurs :

    chmod a-w filename
  • Supprimez de manière récursive l'autorisation d'exécution pour les autres utilisateurs :

    chmod -R o-x dirname
  • Supprimez les autorisations de lecture, d'écriture et d'exécution pour tous les utilisateurs, à l'exception du propriétaire du fichier :

    chmod og-rwx filename

    La même chose peut également être accomplie en utilisant le formulaire suivant :

    chmod og= filename
  • Accordez des autorisations de lecture, d'écriture et d'exécution au propriétaire du fichier, des autorisations de lecture au groupe du fichier et aucune autorisation à tous les autres utilisateurs :

    chmod u=rwx,g=r,o= filename

Méthode numérique #

La syntaxe du chmod commande lors de l'utilisation du mode symbolique a le format suivant :

chmod [OPTIONS] NUMBER FILE...

Lorsque vous utilisez le mode numérique, vous pouvez définir les autorisations pour les trois classes d'utilisateurs (propriétaire, groupe et tous les autres) en même temps.

Le numéro d'autorisation peut être un numéro à 3 ou 4 chiffres. Lorsqu'un nombre à 3 chiffres est utilisé, le premier chiffre représente les autorisations du propriétaire du fichier, le second le groupe du fichier et le dernier tous les autres utilisateurs.

Chaque autorisation d'écriture, de lecture et d'exécution a la valeur numérique suivante :

  • r (lire) =4
  • w (écrire) =2
  • x (exécuter) =1
  • aucune autorisation =0

Le nombre d'autorisations d'une classe d'utilisateurs spécifique est représenté par la somme des valeurs des autorisations pour ce groupe.

Pour connaître les permissions du fichier en mode numérique, il suffit de calculer les totaux pour toutes les classes d'utilisateurs. Par exemple, pour accorder des autorisations de lecture, d'écriture et d'exécution au propriétaire du fichier, des autorisations de lecture et d'exécution au groupe du fichier et des autorisations de lecture uniquement à tous les autres utilisateurs, procédez comme suit :

  • Propriétaire :rwx=4+2+1=7
  • Groupe :r-x=4+0+1=5
  • Autres :r-x=4+0+0=4

En utilisant la méthode ci-dessus, nous arrivons au nombre 754 , qui représente les autorisations souhaitées.

Pour configurer le setuid , setgid , et sticky bit flags, utilisez un nombre à quatre chiffres.

Lorsque le nombre à 4 chiffres est utilisé, le premier chiffre a la signification suivante :

  • setuid=4
  • setgid=2
  • collant=1
  • aucune modification =0

Les trois chiffres suivants ont la même signification que lors de l'utilisation d'un nombre à 3 chiffres.

Si le premier chiffre est 0, il peut être omis et le mode peut être représenté par 3 chiffres. Le mode numérique 0755 est identique à 755 .

Pour calculer le mode numérique, vous pouvez aussi utiliser une autre méthode (méthode binaire), mais c'est un peu plus compliqué. Savoir calculer le mode numérique en utilisant 4, 2 et 1 est suffisant pour la plupart des utilisateurs.

Vous pouvez vérifier les autorisations du fichier dans la notation numérique en utilisant le stat commande :

stat -c "%a" file_name

Voici quelques exemples d'utilisation du chmod commande en mode numérique :

  • Accordez au propriétaire du fichier des autorisations de lecture et d'écriture et uniquement des autorisations de lecture aux membres du groupe et à tous les autres utilisateurs :

    chmod 644 dirname
  • Accordez au propriétaire du fichier des autorisations de lecture, d'écriture et d'exécution, des autorisations de lecture et d'exécution aux membres du groupe et aucune autorisation à tous les autres utilisateurs :

    chmod 750 dirname
  • Accordez des autorisations de lecture, d'écriture et d'exécution, ainsi qu'un sticky bit à un répertoire donné :

    chmod 1777 dirname
  • Définissez de manière récursive des autorisations de lecture, d'écriture et d'exécution pour le propriétaire du fichier et aucune autorisation pour tous les autres utilisateurs sur un répertoire donné :

    chmod -R 700 dirname

Conclusion #

Sous Linux, l'accès aux fichiers est limité à l'aide des autorisations, des attributs et de la propriété des fichiers. Pour modifier les permissions du fichier, utilisez le chmod commande.


Linux
  1. Bases des autorisations de fichiers Linux

  2. Autorisations Linux :une introduction à chmod

  3. Autorisations de fichiers sous Linux avec exemple

  4. Autorisations de fichiers sous Linux – Lecture/Écriture/Exécution

  5. Comprendre comment Umask contrôle les autorisations initiales de fichiers/répertoires sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Comprendre les processus sous Linux

Comprendre les autorisations de fichiers Linux

Exemples de commandes Linux chmod

Comprendre le multipath Linux (dm-multipath)

Comprendre les autorisations de fichiers de base et la propriété sous Linux