GNU/Linux >> Tutoriels Linux >  >> Linux

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

Tous les fichiers et répertoires sous Linux ont un ensemble standard d'autorisations d'accès. Ces autorisations d'accès contrôlent qui peut accéder à quels fichiers et fournissent un niveau de sécurité fondamental aux fichiers et répertoires d'un système.

Autorisations de visualisation

Pour afficher les autorisations pour les fichiers et les répertoires, utilisez le ls -l ou ls –n commandes.

# ls -l file
-rw-r--r-- 1 root root 0 Nov 19 23:49 file

Le premier champ d'information affiché par la commande ls -l est le type de fichier. Le type de fichier spécifie généralement s'il s'agit d'un fichier ou d'un répertoire. Un fichier est représenté par un trait d'union (-). Un répertoire est représenté par la lettre d.
Les champs restants représentent les groupes d'autorisation :propriétaire, groupe, et autre .

Groupes d'autorisations

Il existe trois groupes d'autorisations :

  1. Propriétaire
  2. Groupe
  3. Autre

Le tableau décrit les groupes d'autorisations et leur portée :

Autorisation Description
Propriétaire Autorisations utilisées par le propriétaire assigné du fichier ou du répertoire
Groupe Autorisations utilisées par les membres du groupe propriétaire du fichier ou du répertoire
Autre Autorisations utilisées par tous les utilisateurs autres que le propriétaire du fichier et les membres du groupe propriétaire du fichier ou du répertoire

Ensemble d'autorisations

– Chaque groupe d'autorisations dispose de trois autorisations, appelées un ensemble d'autorisations.
– Chaque ensemble se compose de lire , écrire , et exécuter autorisations.
– Chaque fichier ou répertoire dispose de trois ensembles d'autorisations pour les trois types de groupes d'autorisations.
– Le premier ensemble d'autorisations représente les autorisations du propriétaire, le second ensemble représente les autorisations du groupe et le dernier ensemble représente les autres autorisations.
– Les autorisations de lecture, d'écriture et d'exécution sont représentées par les caractères r , w , et x , respectivement.
– La présence de l'un de ces caractères, tel que r, indique que l'autorisation particulière est accordée.
– Un tiret ( ) à la place d'un caractère dans un jeu d'autorisations indique qu'une autorisation particulière est refusée.
– Linux attribue automatiquement les autorisations initiales lorsqu'un nouveau fichier ou répertoire est créé.

Autorisation Accès à un fichier Accès pour un répertoire
Lire (r) Vous pouvez afficher le contenu du fichier et copier le fichier. Vous pouvez lister le contenu du répertoire avec la commande ls.
Écrire (w) Vous pouvez modifier le contenu du fichier. Vous pouvez modifier le contenu d'un répertoire, par exemple en supprimant un fichier. Vous devez également avoir l'autorisation d'exécution pour que cela se produise.
Exécuter (x) Vous pouvez exécuter le fichier s'il s'agit d'un exécutable. Vous pouvez exécuter un script shell si vous disposez également des autorisations de lecture et d'exécution. Vous pouvez utiliser la commande cd pour accéder au répertoire. Si vous disposez également d'un accès en lecture, vous pouvez exécuter la commande ls -l sur le répertoire pour en répertorier le contenu. Si vous n'avez pas d'accès en lecture, vous pouvez exécuter la commande ls tant que vous connaissez le nom du fichier.

Propriété du fichier

Chaque fichier appartient à un utilisateur spécifique (ou UID) et à un groupe spécifique (ou GID). Le chown La commande peut être utilisée pour modifier uniquement l'utilisateur, ou l'utilisateur et le groupe d'un fichier. Voici un exemple de modification du propriétaire du fichier test en utilisateur et de son groupe en utilisateur.

# ls -l test
-rw-r--r-- 1 root root 0 Nov 20 00:43 test
# chown user:user test
# ls -l test
-rw-r--r-- 1 user user 0 Nov 20 00:43 test

Le format de base de la commande chown est le suivant :

# chown user:group filename

Un point (.) peut être utilisé à la place des deux-points (:) caractère séparateur. En outre, le nom de l'utilisateur ou du groupe peut être omis. Si le nom d'utilisateur est omis (mais que le caractère de séparation est présent), alors la commande chown se comporte comme le chgrp commande, et seule la propriété du groupe est modifiée. Si le nom du groupe est omis (mais que le caractère séparateur est présent, le groupe sera défini sur le groupe de connexion de l'utilisateur spécifié. Si le nom du groupe et le caractère séparateur sont omis, seul le nom d'utilisateur est modifié. Par exemple , pour changer uniquement le propriétaire, vous pouvez exécuter ce qui suit :

# chown user filename

Une autre commande pour modifier uniquement le groupe d'un fichier est la commande chgrp. Par exemple :

# chgrp group filename

La commande chgrp est couramment utilisée par les utilisateurs normaux pour modifier la propriété du groupe de leurs fichiers. La commande chown est normalement utilisée uniquement par l'utilisateur root.

Propriété du groupe par défaut

Chaque utilisateur peut être membre de plusieurs groupes (répertoriés dans le fichier /etc/group sous plusieurs groupes). Un seul groupe sera le groupe principal d'un utilisateur (répertorié dans l'entrée de l'utilisateur dans /etc/password). Lorsqu'un utilisateur crée un fichier, par défaut, le fichier appartient au groupe principal de l'utilisateur. S'ils veulent que le fichier appartienne à l'un de leurs autres groupes, ils doivent utiliser le chgrp commande pour modifier l'appartenance au groupe. Par exemple :

$ id
uid=1001(user) gid=1001(user) groups=1001(user),10(wheel)
$ touch file
$ ls -lrt file
-rw-rw-r-- 1 user user 0 Nov 20 00:52 file

Comme indiqué ci-dessus, le fichier nouvellement créé (fichier) obtient automatiquement le groupe en tant qu'"utilisateur".

Autorisations de fichiers et de répertoires

Ci-dessous un exemple de sortie de ls -l commande; vous pouvez voir dès le premier caractère de chaque ligne que dir1 et dir2 sont des répertoires (indiqués par le d ) et que fichier1 et fichier2 sont un fichier normal (indiqué par ).

$ ls -l
total 0
drwxrwxr-x 2 user user 6 Nov 20 00:55 dir1
drwxrwxr-x 2 user user 6 Nov 20 00:55 dir2
-rw-rw-r-- 1 user user 0 Nov 20 00:55 file1
-rw-rw-r-- 1 user user 0 Nov 20 00:55 file2

Les neuf caractères suivants indiquent les autorisations du fichier pour l'utilisateur, le groupe et les autres (ou tout le monde) comme indiqué ci-dessous, avec des parenthèses ajoutées pour plus de clarté :

-(rw-)(rw-)(r--) 1 user user 0 Nov 20 00:55 file1

Maintenant, le propriétaire a des autorisations de lecture et d'écriture (rw-), le groupe a des autorisations de lecture et d'écriture (rw-) et tous les autres ont uniquement des autorisations de lecture (r–). C'est ce qu'on appelle la représentation symbolique car des lettres telles que r, w et x sont utilisées pour indiquer les autorisations.

Les autorisations peuvent également être représentées numériquement :

r = 4; w = 2; x = 1

Ajoutez chaque section afin que les autorisations de la méta du fichier (de l'exemple ci-dessus) soient 664. Voici une autre façon de voir comment nous arrivons à ce nombre :

-(rw-)(rw-)(r--)
-(42-)(42-)(4--)
664

L'ajout des nombres dans chaque section donne des autorisations de 664.

Modification des autorisations de fichiers

La commande chmod est utilisée pour modifier les permissions d'un fichier. Il peut être utilisé pour ajouter ou supprimer symboliquement des autorisations. Par exemple, pour ajouter des autorisations d'exécution pour le propriétaire d'un fichier que vous exécuteriez :

$ chmod u+x file_name

Ou, pour ajouter des autorisations de lecture et d'écriture pour le groupe propriétaire du fichier, vous exécuteriez :

$ chmod g+rw file_name

Au lieu d'ajouter des autorisations, la syntaxe symbolique de chmod peut également être utilisée pour soustraire ou définir une valeur absolue, comme indiqué dans ces exemples :

$ chmod o-w file_name
$ chmod u=rwx,g=rx,o= file_name

La commande chmod peut également définir explicitement des autorisations à l'aide d'une représentation numérique. Par exemple, pour définir les autorisations sur un fichier sur rwxrwxr–, vous exécuteriez :

$ chmod 774 file_name

En plus des autorisations standard de lecture, d'écriture et d'exécution, chmod peut également définir des autorisations spéciales. Ce sont le bit setuid, le bit setgid et le bit collant. Les exemples suivants montrent la définition de chacune de ces autorisations spéciales ainsi que de brèves descriptions de l'effet de ces autorisations.

$ chmod u+s file_name

Ajoute le setuid bit pour que, s'il est exécutable, ce fichier s'exécute avec les permissions de son propriétaire.

$ chmod g+s file_name

Ajoute le setgid bit pour que, s'il est exécutable, ce fichier s'exécute avec les permissions de son groupe. Lorsque cela est défini sur un répertoire, tous les fichiers créés dans le répertoire auront le même groupe que le répertoire.

$ chmod o+t directory_name

Ajoute le morceau collant afin que les utilisateurs ne puissent supprimer que les fichiers de ce répertoire qu'ils ont créés.


Linux
  1. Bases des autorisations de fichiers Linux

  2. Autorisations Linux :une introduction à chmod

  3. Linux chmod et chown - Comment modifier les autorisations et la propriété des fichiers sous Linux

  4. Autorisations de fichiers et sauvegarde ?

  5. Concepts d'autorisation de fichiers Linux

Comprendre les autorisations de fichiers Linux

Commande Chown sous Linux (propriété des fichiers)

Commande Chmod sous Linux (autorisations de fichiers)

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

Comprendre les autorisations de fichiers Linux

Autorisations de base du répertoire Linux et comment les vérifier