Comment gérer les ACL sur Linux

Comment gérer les ACL sur Linux

Objectif

Introduction à la gestion des ACL (liste de contrôle d'accès) sur Linux

Système d'exploitation et versions logicielles

  • Système opérateur: - Distribution Linux agnostique

Exigences

  • Accès root sur une installation Linux fonctionnelle
  • Connaissance du système d'autorisation discrétionnaire
  • Un système de fichiers qui prend en charge les ACL (e.G XFS, EXT2, EXT3, EXT4), monté avec l'option «ACL»
  • Le package «ACL» installé

Difficulté

MOYEN

Conventions

  • # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Dans ce tutoriel, nous verrons ce que sont les ACL et comment faire la manipulation de base de ce type d'autorisations sur une plate-forme Linux. Les instructions ci-dessous fonctionneront sur n'importe quelle distribution Linux. Je suppose que vous savez et que vous êtes à l'aise en utilisant des autorisations UGO / RWX discrétionnaires standard.

Alors, quels sont les ACL ?

Les ACL sont un deuxième niveau d'autorisations discrétionnaires, qui peuvent remplacer les autorisations standard UGO / RWX. Lorsqu'ils sont utilisés correctement, ils peuvent vous accorder une meilleure granularité pour définir l'accès à un fichier ou à un répertoire, par exemple en donnant ou en refusant l'accès à un utilisateur spécifique qui n'est ni le propriétaire du fichier, ni dans le propriétaire du groupe.



Commencer

La première chose que vous devez faire, si vous voulez profiter des ACLS est de vous assurer que le système de fichiers sur lequel vous souhaitez les utiliser a été monté avec l'option 'ACL'. Pour vérifier ce dernier, vous pouvez exécuter la commande 'Tune2fs -l', en passant la partition comme argument. Comme vous pouvez le voir en cours d'exécution (sortie tronquée):

# Tune2fs -l / dev / sda3 

Donne le résultat suivant sur mon système, montrant que le système de fichiers sur / dev / sda3 a, parmi les options de montage par défaut, également «ACL».

Si votre système de fichiers n'a pas été monté avec l'option «ACL», vous pouvez le reconstituer en donnant l'option nécessaire:

# Mount -O Remount -o ACL / DEV / SDA1 

Cependant, notez que les options de montage définissent de cette façon, ne seront pas persistantes et ne survivront pas à un redémarrage. Si vous souhaitez obtenir de la persistance, vous devez modifier les options de montage du système de fichiers dans / etc / fstab, en attribuant l'option «ACL» statiquement.

Une autre chose dont nous avons besoin est d'installer le ACL emballer. Ce package contient divers utilitaires ACLS comme le getfacl et setfacl programmes.

Un cas de test

Voyons ce que les ACL peuvent faire pour nous. Nous allons d'abord créer un fichier nommé texte.CFG et nous le donnerons comme argument au getfacl commande. Voyons ce que montre la sortie de cette commande:

 $ touch texte.CFG && getfacl texte.CFG 

Comme vous pouvez le voir, puisque nous n'avons défini aucune autorisation de LCA sur le fichier, la commande affiche simplement les valeurs des autorisations standard, plus le propriétaire du fichier et le propriétaire du groupe, ayant tous deux des autorisations de lecture et d'écriture. Imaginons maintenant que nous voulons donner un utilisateur spécifique (je vais créer cet utilisateur exprès et l'appeler factice ), un ensemble spécifique de privilèges sur le fichier. Nous devrons simplement courir:

$ setfacl -m u: mannequin: texte rw.CFG 

Analysons la commande: nous avons d'abord le nom du programme setfacl, qui est assez explicite, puis nous avons passé le -m Option (abréviation pour --modifier) qui nous permet de modifier les ACL d'un fichier, puis les descriptions d'autorisation U: mannequin: RW.

Nous avons trois «sections» divisées par des colons: dans le premier, le u signifie utilisateur, spécifiant que nous souhaitons définir les ACL pour un utilisateur spécifique. Ça aurait pu être un g pour le groupe, ou un o pour autres. Dans la deuxième section, nous avons le nom de l'utilisateur pour lequel nous voulons définir les autorisations et, dans le troisième, les autorisations d'attribution.

Enfin, le nom du fichier sur lequel nous voulons appliquer les autorisations.

Si nous essayons maintenant d'exécuter la commande 'GetFacl', nous pouvons voir que sa sortie reflète les modifications que nous avons apportées:

$ getfacl texte.CFG 



Une entrée a été ajoutée pour le factice utilisateur, montrant les autorisations que nous lui avons attribuées. À part cela, si vous remarquez, également une entrée pour masque est apparu. Qu'est ce que cela signifie ? Le masque associé à un ACL limite l'ensemble des autorisations qui peuvent être attribuées sur le fichier pour les groupes et les utilisateurs nommés et pour le propriétaire du groupe, mais qui n'a aucun effet sur les autorisations pour le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le propriétaire du fichier et le File autre groupe d'autorisation.

Dans ce cas, seules les autorisations de lecture et d'écriture pourraient être attribuées avec la commande setfacl. Bien sûr, nous pouvons modifier cette option, en utilisant setfacl Programme lui-même:

$ setfacl -m Masque: R texte.CFG 

Avec la commande ci-dessus, nous définissons le masque pour autoriser uniquement les autorisations de lecture. Vérifions la sortie de getfacl maintenant:

$ getfacl texte.CFG 


Comme vous pouvez le voir, non seulement les modifications que nous avons apportées au masque sont maintenant signalées, mais aussi les autorisations efficaces pour le propriétaire du groupe et l'utilisateur nommé factice sont montrés. Bien que le propriétaire du groupe et le factice L'utilisateur a des autorisations de lecture et d'écriture sur le fichier, en modifiant le masque, nous avons effectivement limité leurs autorisations à lire uniquement. Comme le montre la sortie de la commande, ils ne sont désormais autorisés qu'à lire le fichier.

Outre explicitement changé avec la commande ci-dessus, le masque ACLS est également ré-calculé automatique. Démontrent que: nous allons changer les autorisations du factice utilisateur de rwx puis vérifiez la sortie GetFacl:

$ setfacl -m u: mannequin: texte rwx.CFG && getfacl texte.CFG 


Comme vous pouvez le voir, le masque a été recalculé et il reflète maintenant les autorisations maximales présentes pour l'utilisateur nommé factice. De toute évidence, car maintenant aucune autorisation précédemment définie n'est plus élevée que le masque, il n'est pas nécessaire de montrer le #efficace statut d'autorisation.

Vous pouvez également utiliser ACL pour refuser complètement l'accès à un fichier pour un utilisateur ou un groupe nommé spécifique. Par exemple, en fonctionnant:

$ setfacl -m u: mannequin: - texte.CFG 

Nous refusons efficacement tous les privilèges à la factice Utilisateur sur le texte.Fichier CFG.



ACLS par défaut

Le défaut ACL est un type spécifique d'autorisation attribuée à un répertoire, qui ne modifie pas les autorisations du répertoire lui-même, mais fait en sorte que les ACL spécifiés soient définis par défaut sur tous les fichiers créés à l'intérieur de celui-ci. Voyons-le: nous allons d'abord créer un répertoire et attribuer défaut ACL à lui en utilisant le -d option:

$ mkdir test && setfacl -d -m u: mannequin: test rw 

Maintenant, nous pouvons examiner la sortie du GetFacl pour ce répertoire:

$ getfacl test 


Le défaut Les autorisations ont été attribuées correctement. Nous pouvons maintenant les vérifier en créant un fichier à l'intérieur du répertoire de test et en vérifiant ses autorisations en exécutant GetFacl:

$ Test Test / Fichier.CFG && Test / fichier GetFacl.CFG 


Comme prévu, le fichier a été créé automatiquement les autorisations ACLS spécifiées ci-dessus.

Lorsque vous souhaitez effacer tout l'ensemble des ACL, vous pouvez toujours exécuter le setFacl avec le -b option.

Ce tutoriel couvre les principaux aspects des ACL, et bien sûr, il y en a beaucoup plus à savoir, donc je suggère, comme toujours, de lire le manuel pour une connaissance plus approfondie. N'oubliez pas maintenant que si vous souhaitez supprimer toutes les autorisations ACLS attribuées à un fichier, il vous suffit d'exécuter setfacl avec le -b (court pour --Enlever tout) option.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Fichiers de configuration Linux: 30 premiers
  • Téléchargement Linux
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Meilleure distribution Linux pour les développeurs
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Comment monter l'image ISO sur Linux
  • Comment formater le disque dans Linux