Autorisations de fichiers Linux

Droits d'accès aux fichiers Linux - 1.0

Notions de base sur la propriété des fichiers et les autorisations sous Linux. Apprenez à comprendre qui sont les propriétaires d'un fichier ou d'un répertoire, comment fonctionnent les autorisations de fichiers et comment les afficher, et apprenez à définir vous-même les autorisations de fichiers de base.

Autorisations et propriété - pourquoi? >

Si vous ne pouvez pas accéder à certains fichiers sur votre propre système Linux, c'est généralement à cause d'autorisations d'accès aux fichiers mal configurées. Si vous êtes le seul utilisateur de votre machine Linux, vous vous demandez peut-être quel est l'intérêt d'avoir toutes ces autorisations (ou leur absence) qui restreignent votre accès à votre propre système d'exploitation penguin. Cependant, avant de vous arracher les cheveux, vous devez garder à l'esprit que Linux est conçu pour être un environnement multi-utilisateurs. Dans un environnement avec plusieurs utilisateurs, il est essentiel de disposer d'un système sécurisé pour décider quels fichiers vous appartiennent et qui peut les manipuler.

Même si vous êtes le seul utilisateur sur un système de bureau ordinaire, les autorisations de fichiers aident à protéger vos fichiers importants, à la fois contre les étrangers et vos propres erreurs. 🙂

 

Comprendre la propriété d'un fichier >

Chaque fichier de votre système Linux, y compris les répertoires, appartient à un utilisateur et à un groupe spécifiques. Par conséquent, les autorisations de fichiers sont définies séparément pour les utilisateurs, les groupes et autres.

Utilisateur: Le nom d'utilisateur de la personne qui possède le fichier. Par défaut, l'utilisateur qui crée le fichier deviendra son propriétaire.

Groupe: Le groupe d'utilisateurs qui possède le fichier. Tous les utilisateurs appartenant au groupe propriétaire du fichier auront les mêmes autorisations d'accès au fichier. Ceci est utile si, par exemple, vous avez un projet qui nécessite un groupe d'utilisateurs différents pour pouvoir accéder à certains fichiers, alors que d'autres ne le peuvent pas. Dans ce cas, vous allez ajouter tous les utilisateurs dans le même groupe, vous assurer que les fichiers requis appartiennent à ce groupe et définir les autorisations de groupe du fichier en conséquence.

Autres: Un utilisateur qui n'est pas le propriétaire du fichier et n'appartient pas au même groupe que le fichier. En d'autres termes, si vous définissez une autorisation pour la catégorie «autre», cela affectera tout le monde par défaut. Pour cette raison, les gens parlent souvent de définir le bit d'autorisation «monde» lorsqu'ils veulent définir les autorisations pour «autre».

 

Comprendre les autorisations de fichiers >

Il existe trois types d'autorisations d'accès sous Linux: lecture, écriture et exécution. Ces autorisations sont définies séparément pour le propriétaire du fichier, le groupe et tous les autres utilisateurs.

Lire la permission. Sur un fichier normal, le bit d’autorisation de lecture signifie que le fichier peut être ouvert et lu. Sur un répertoire, le droit de lecture signifie que vous pouvez répertorier le contenu du répertoire.

Permission d'écriture. Sur un fichier normal, cela signifie que vous pouvez modifier le fichier, c'est-à-dire écrire de nouvelles données dans le fichier. Dans le cas d'un répertoire, l'autorisation d'écriture signifie que vous pouvez ajouter, supprimer et renommer des fichiers dans le répertoire. Cela signifie que si un fichier a le bit d'autorisation d'écriture, vous êtes autorisé à modifier le contenu du fichier, mais vous êtes autorisé à renommer ou supprimer le fichier uniquement si les autorisations du fichier annuaire vous permettent de le faire.

Exécuter l'autorisation. Dans le cas d'un fichier normal, cela signifie que vous pouvez exécuter le fichier en tant que programme ou script shell. Sur un répertoire, l'autorisation d'exécution (également appelée «bit de recherche») vous permet d'accéder aux fichiers du répertoire et de le saisir, avec le cd commande, par exemple. Cependant, notez que bien que le bit d'exécution vous permette d'entrer dans le répertoire, vous n'êtes pas autorisé à lister son contenu, sauf si vous avez également les autorisations de lecture sur ce répertoire.

 

Comment afficher les autorisations de fichiers >

Vous pouvez afficher les autorisations d'accès d'un fichier en faisant la liste de répertoires longue avec le ls -l commander. Voici à quoi une longue liste de répertoires pourrait ressembler:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Qu'est-ce que la sortie de ls -l signifier? La toute première colonne, celle qui ressemble à un tas de mumbo jumbo, montre le type de fichier et les autorisations. La deuxième colonne indique le nombre de liens (entrées de répertoire qui font référence au fichier), la troisième indique le propriétaire du fichier et la quatrième indique le groupe auquel appartient le fichier. Les autres colonnes indiquent la taille du fichier en octets, la date et l'heure de la dernière modification et le nom du fichier.

La première colonne, celle qui montre les autorisations du fichier et ressemble à mumbo jumbo, est organisée en quatre groupes distincts, même si elle n'a certainement pas l'air très organisée.

Le premier groupe se compose d'un seul caractère et indique le type du fichier. Par exemple, d signifie un répertoire et - signifie un fichier normal, donc si vous regardez notre exemple de sortie, vous remarquerez dir est un répertoire, alors que file ainsi que  otherfile sont des fichiers réguliers.

Le premier caractère peut être l'un de ceux-ci:

d = répertoire
- = fichier régulier
l = lien symbolique
s = Socket de domaine Unix
p = pipe nommée
c = fichier de périphérique de caractères
b = fichier de périphérique de bloc

Les neuf caractères suivants indiquent les autorisations du fichier, divisées en trois groupes, chacun composé de trois caractères. Le premier groupe de trois caractères affiche les autorisations de lecture, d'écriture et d'exécution pour utilisateur, le propriétaire du fichier. Le groupe suivant indique les autorisations de lecture, d’écriture et d’exécution du groupe du fichier. De même, le dernier groupe de trois caractères indique les autorisations pour autre, tous les autres. Dans chaque groupe, le premier caractère signifie l'autorisation de lecture, le deuxième autorisation d'écriture et le troisième autorisation d'exécution.

Les personnages sont assez faciles à retenir.

r = permission de lecture
w = permission d'écriture
x = autorisation d'exécution
- = pas de permission

Qu'est-ce que cela signifie en pratique? Prenons un exemple. Vous vous souvenez de la liste de répertoires imaginaire que nous avons faite au début? La sortie ressemblait à ceci:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Comme nous l'avons déjà remarqué, dir est un répertoire, car la première colonne commence par un d. Le propriétaire de ce répertoire est l'utilisateur nana et le propriétaire du groupe est writers. Les trois premiers personnages, rwx, indiquez le propriétaire de l'annuaire, nana dans ce cas, a un accès complet au répertoire. L'utilisateur nana est capable d'accéder, de voir et de modifier les fichiers de ce répertoire. Les trois prochains personnages, r-x, indique que tous les utilisateurs appartenant au groupe writers avoir des autorisations de lecture et d'exécution sur le répertoire. Ils peuvent accéder au répertoire, exécuter des fichiers et afficher son contenu. Cependant, comme ils ne disposent pas des autorisations d'écriture, ils ne peuvent apporter aucune modification au contenu du répertoire. Enfin, les trois derniers personnages, r-x, indique que tous les utilisateurs qui ne sont pas nana ou n'appartenez pas au groupe writers, ont lu et exécuté les permissions dans le répertoire.

Que diriez-vous file? Parce que la première colonne commence par un -, le fichier est un fichier normal, appartenant à l'utilisateur nana et le groupe writers, tout comme le répertoire dans notre exemple. Les trois premiers personnages, rw-, indique que le propriétaire a un accès en lecture et en écriture au fichier. Selon les trois personnages suivants, r--, les utilisateurs appartenant au groupe writers peut visualiser le fichier mais ne pas le modifier ni l'exécuter. Les trois derniers personnages, ---, indique que personne d’autre n’a accès au fichier.

De même, vous pouvez voir otherfile est un fichier normal auquel son propriétaire a pleinement accès, alors que tout le monde peut le lire et l’exécuter, mais pas le modifier.

 

Comment définir les autorisations de fichier - mode symbolique >

Vous pouvez définir les autorisations de fichier avec le chmod commander. L'utilisateur root et le propriétaire du fichier peuvent définir des autorisations de fichier. chmod a deux modes, symbolique et numérique.

Le mode symbolique est assez facile à retenir. Tout d'abord, vous décidez si vous définissez des autorisations pour l'utilisateur (u), le groupe (g), les autres (o) ou les trois (a). Ensuite, vous ajoutez une autorisation (+), supprimez-la (-) ou effacez les autorisations précédentes et en ajoutez une nouvelle (=). Ensuite, vous décidez si vous définissez l'autorisation de lecture (r), l'autorisation d'écriture (w) ou l'autorisation d'exécution (x). Enfin, tu diras chmod les autorisations du fichier que vous souhaitez modifier.

Prenons quelques exemples. Supposons que nous ayons un fichier régulier appelé testfile, et le fichier a des permissions d’accès complet pour tous les groupes (une liste de répertoires longue montrerait -rwxrwxrwx comme autorisations du fichier).

Supprimez toutes les autorisations mais ajoutez une autorisation de lecture pour tout le monde:
chmod a=r testfile
Après la commande, les autorisations du fichier seraient -r--r--r--

Ajouter des autorisations d'exécution pour le groupe:
chmod g+x testfile
Désormais, les autorisations du fichier seraient -r--r-xr--

Ajoutez à la fois les autorisations d'écriture et d'exécution pour le propriétaire du fichier. Notez comment vous pouvez définir plusieurs autorisations en même temps:
chmod u+wx testfile
Après cela, les autorisations de fichiers seront -rwxr-xr--

Supprimez l'autorisation d'exécution du propriétaire et du groupe du fichier. Notez, encore une fois, comment vous pouvez les définir tous les deux à la fois:
chmod ug-x testfile
Maintenant, les autorisations sont -rw-r--r--

En résumé, consultez cette référence rapide pour la définition d'autorisations de fichiers en mode symbolique:

Quel utilisateur?
u utilisateur / propriétaire
g groupe
o autre
a TOUTE
Que faire?
+ ajouter cette permission
- retirer cette permission
= définir exactement cette permission
Quelles autorisations?
r lire
w écrire
x exécuter

 

Comment définir les autorisations de fichier - mode numérique >

L'autre mode dans lequel chmod peut être utilisé est le mode numérique. En mode numérique, les autorisations de fichier ne sont pas représentées par des caractères. Au lieu de cela, ils sont représentés par un nombre octal à trois chiffres.

= lu (r)
2 = écrire (w)
1 = exécuter (x)
0 = pas de permission (-)

Pour obtenir les bits d'autorisation souhaités, additionnez les nombres en conséquence. Par exemple, les autorisations rwx seraient 4 + 2 + 1 = 7, rx serait 4 + 1 = 5 et rw serait 4 + 2 = 6. Étant donné que vous définissez des autorisations distinctes pour le propriétaire, le groupe et les autres, vous aurez besoin d'un nombre à trois chiffres représentant les autorisations de tous ces groupes.

Prenons un exemple.
chmod 755 testfile
Cela changerait le testfileles autorisations de -rwxr-xr-x. Le propriétaire disposerait d'autorisations de lecture, d'écriture et d'exécution complètes (7 = 4 + 2 + 1), le groupe disposerait d'autorisations de lecture et d'exécution (5 = 4 + 1) et le monde disposerait des autorisations de lecture et d'exécution. .

Prenons un autre exemple:
chmod 640 testfile
Dans ce cas, testfileles autorisations de -rw-r-----. Le propriétaire aurait des autorisations de lecture et d'écriture (6 = 4 + 2), le groupe n'aurait que des autorisations de lecture (4), et les autres n'auraient aucune autorisation d'accès (0).

Le mode numérique peut ne pas être aussi simple que le mode symbolique, mais avec le mode numérique, vous pouvez définir plus rapidement et efficacement les autorisations de fichiers. Cette référence rapide pour la définition d'autorisations de fichiers en mode numérique peut aider:

Quel numéro?
0 -
1 -X
2 -w-
3 -wx
4 r–
5 rx
6 rw-
7 rwx