Recherche de site Web

Comment utiliser Sticky Bit pour gérer les fichiers sur des répertoires partagés sous Linux


Depuis sa création, Linux a été conçu pour prendre en charge un environnement multi-utilisateurs. Avec de nombreux utilisateurs et groupes sur un système de travail, il est assez courant de rencontrer des répertoires partagés entre les utilisateurs du même groupe, et des problèmes surviennent lors du partage de fichiers dans les répertoires. Dans cet article, nous verrons comment utiliser les sticky bits pour affiner les autorisations d'accès aux fichiers sur les répertoires partagés.

À des fins d'illustration, nous avons un système avec trois utilisateurs - john1, john2 et john3, tous membres du groupe commun "johns".

Disons que "john1" crée un nouveau répertoire appelé "shared-dir" destiné à être partagé entre tous les utilisateurs du groupe "johns".

Avec la commande ls, nous pouvons visualiser la permission du "shared-dir", qui peut être interprétée dans le tableau suivant :

Seul "john1" peut lire le contenu du répertoire et également écrire dans le répertoire. Puisque nous travaillons avec un répertoire partagé, nous souhaitons que tous les utilisateurs du groupe puissent écrire dans "shared-dir".

Pour cela, nous modifierons les autorisations à l'aide de la commande chmod. Nous ajouterons les autorisations « écriture » à tous les utilisateurs du groupe « johns », comme indiqué ci-dessous.

Nous pouvons afficher les autorisations mises à jour pour "shared-dir" comme indiqué ci-dessous. La partie soulignée en jaune montre que le groupe « johns » a reçu des autorisations « d'écriture ».

Ajout de fichiers au répertoire partagé

Maintenant, "john1" ajoute deux fichiers (j1_file1.txt et j1_file2.txt) à "shared-dir"

Pour faciliter la compréhension, les deux premiers caractères du nom de fichier sont synonymes du nom d'utilisateur.

De même, "john2" peut également "écrire" dans le répertoire "shared-dir".

Il y a maintenant quatre fichiers dans "shared-dir".

Y a-t-il un problème avec la configuration actuelle ?

Le fichier "j1_file1.txt" a été créé par "john1", faisant de "john1" le propriétaire du fichier. Maintenant, "john2" se connecte et tente de supprimer ce fichier, et il pourra le faire.

"john1" était le propriétaire du fichier, mais "john2" a pu le supprimer car l'autorisation "écrire" a été accordée à tous les membres du groupe "johns".

Ce scénario n'est pas idéal. Nous voulons que tous les utilisateurs puissent écrire dans le répertoire, mais seul le propriétaire du fichier doit pouvoir supprimer un fichier. Comment cela peut il etre accompli?

Présentation de Sticky Bit

Le sticky bit est une autorisation spéciale qui peut être définie sur un répertoire disposant d'autorisations « d'écriture » définies pour le groupe qui y a accès. Ce bit garantit que tous les membres du groupe peuvent écrire dans le répertoire, mais que seule la personne qui a créé un fichier, c'est-à-dire le propriétaire du fichier, peut supprimer le fichier.

La commande chmod avec l'indicateur +t peut être utilisée pour définir le bit collant sur un répertoire.

L'autorisation mise à jour peut être consultée ci-dessous.

Désormais, si « john2 » tente de supprimer le fichier « j1_file2.txt » créé par « john1 », cette opération n'est pas autorisée.

Si vous supprimez l'autorisation « exécuter » pour « autres », comme indiqué ci-dessous :

l'existence d'un sticky bit sur le répertoire est représentée par un « T » majuscule dans la partie « autres » de la chaîne d'autorisation. Le comportement du sticky bit sur le répertoire reste le même.

Variante de la commande "chmod"

La forme numérique de la commande chmod peut également être utilisée pour définir un sticky bit sur un répertoire.

chmod nxyz <file_name>

où,

  • n=1, faisant référence au bit collant. Les autres valeurs de « n » font référence à d'autres autorisations spéciales.
  • x : autorisation donnée au propriétaire du fichier
  • y : autorisation donnée au groupe ayant accès au fichier
  • z : autorisation donnée à d'autres

Pour définir le sticky bit sur "shared-dir", utilisez la commande suivante :

chmod 1755 shared-dir

ce qui produit le même résultat que l'utilisation de +t sur les autorisations par défaut existantes.

L'utilisation de sticky bit n'est valable que pour les répertoires, cela n'aurait aucun sens de l'utiliser pour les fichiers.

Articles connexes