Fichiers sécurisés / répertoires à l'aide d'ACLS (listes de contrôle d'accès) dans Linux

Fichiers sécurisés / répertoires à l'aide d'ACLS (listes de contrôle d'accès) dans Linux

Comme un Administrateur système, Notre première priorité sera de protéger et de sécuriser les données contre l'accès non autorisé. Nous sommes tous conscients des autorisations que nous définissons en utilisant des commandes Linux utiles comme chod, chown, chgrp… etc. Cependant, ces ensembles d'autorisations par défaut ont une certaine limitation et peuvent parfois ne pas fonctionner selon nos besoins. Par exemple, nous ne pouvons pas configurer différents ensembles d'autorisations pour différents utilisateurs sur le même répertoire ou fichier. Ainsi, Listes de contrôle d'accès (ACLS) ont été mis en œuvre.

Listes de contrôle d'accès Linux

Disons que vous avez trois utilisateurs, 'Tecmint1','Tecmint2' et 'Tecmint3'. Chacun ayant un groupe commun dit 'ACL '. Utilisateur 'Tecmint1'Je veux ça seulement'Tecmint2'L'utilisateur peut lire et accès Fichiers détenus par 'Tecmint1'Et personne d'autre ne devrait avoir un accès à ce sujet.

ACLs (Listes de contrôle d'accès) nous permet de faire la même astuce. Ces ACL nous permettent d'accorder des autorisations pour un utilisateur, groupe et tout groupe de tous les utilisateurs qui ne figurent pas dans la liste de groupes d'un utilisateur.

Note: Conformément à la documentation du produit Redhat, il fournit une prise en charge de l'ACL pour les systèmes de fichiers de fichiers EXT3 et les systèmes de fichiers exportés NFS.

Comment vérifier la prise en charge de l'ACL dans les systèmes Linux

Avant d'aller de l'avant, vous devriez avoir une prise en charge des ACL sur les systèmes actuels du noyau et des fichiers montés.

1. Vérifiez le support du noyau ACL

Exécutez la commande suivante pour vérifier la prise en charge ACL pour le système de fichiers et Posix_acl = y Option (s'il y a N au lieu de Y, alors cela signifie que le noyau ne prend pas en charge ACL et doit être recompilé).

[[e-mail protégé] ~] # grep -i acl / boot / config * config_Ext4_fs_posix_acl = y Config_Reiserfs_fs_posix_acl = y CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y

2. Vérifiez les packages requis

Avant de commencer à jouer avec ACLS, assurez-vous que vous avez besoin de packages installés. Vous trouverez ci-dessous les packages requis qui doivent être installés en utilisant Miam ou apt-get.

[[Protégé par e-mail] ~] # yum install nfs4-acl-tools ACL libacl [sur Chapeau rouge Systèmes basés
[[Protégé par e-mail] ~] $ sudo apt-get install nfs4-acl-tools acl [on Debian Systèmes basés

3. Vérifiez le système de fichiers monté pour le support ACLS

Maintenant, vérifiez le système de fichiers monté qui est monté avec l'option ACL ou non. On peut utiliser 'monter'commande pour vérifier la même chose que ci-dessous.

[[Protégé par e-mail] ~] # Mount | grep -i root / dev / mapper / fedora-root on / type ext4 (rw, relation, données = ordonné)

Mais dans notre cas, il ne montre pas ACL par défaut. Donc, ensuite nous avons la possibilité de retirer à nouveau la partition montée à l'aide de l'option ACL. Mais, avant d'avancer, nous avons une autre option pour nous assurer que la partition est montée avec une option ACL ou non, car pour le système récent, il peut être intégré à l'option de montage par défaut.

[[Email Protected] ~] # Tune2fs -l / dev / mapper / fedora-root | Options de montage par défaut Grep ACL: user_xattr ACL

Dans la sortie ci-dessus, vous pouvez voir que l'option de montage par défaut a déjà la prise en charge de la LCA. Une autre option consiste à remonter la partition comme indiqué ci-dessous.

[[e-mail protégé] ~] # Mount -O Remount, ACL /

Ensuite, ajoutez l'entrée ci-dessous au fichier '/ etc / fstab' pour le rendre permanent.

/ dev / mapper / fedora-root / ext4 par défaut, ACL 1 1

Encore une fois, remonte à la partition.

[[e-mail protégé] ~] # Mount -O Remount /

4. Pour le serveur NFS

Sur le serveur NFS, si le système de fichiers exporté par le serveur NSF prend en charge ACL et ACLS peut être lu par les clients NFS, les ACL sont utilisés par le système client.

Pour la désactivation des ACL sur NFS Partage, vous devez ajouter l'option "no_acl" dans '/ etc / exportfs'Fichier sur le serveur NFS. Pour le désactiver du côté client NSF, utilisez à nouveau "no_acl”Option pendant le temps de montage.

Comment implémenter la prise en charge de l'ACL dans les systèmes Linux

Il existe deux types de ACLS:

  1. Accéder aux ACL: Les ACL d'accès sont utilisés pour accorder des autorisations sur n'importe quel fichier ou répertoire.
  2. ACLS par défaut: Les ACL par défaut sont utilisés pour accorder / définir la liste de contrôle d'accès sur un répertoire spécifique uniquement.

Différence entre l'accès ACL et ACL par défaut:

  1. La ACL par défaut peut être utilisée au niveau du répertoire uniquement.
  2. Tout sous-répertoire ou fichier créé dans ce répertoire héritera des ACL à partir de son répertoire parent. D'un autre côté, un fichier hérite des ACL par défaut comme ses ACL d'accès.
  3. Nous utilisons "-d«Pour définir les ACL par défaut et les ACL par défaut sont des options.
Avant de définir les ACL par défaut

Pour déterminer les ACL par défaut pour un fichier ou un répertoire spécifique, utilisez le 'getfacl' commande. Dans l'exemple ci-dessous, le getfacl est utilisé pour obtenir les ACL par défaut pour un dossier 'Musique'.

[[Email Protected] ~] # GetFacl Music / # Fichier: Music / # Propriétaire: ROOT # Groupe: Root User :: RWX GROUP :: R-X Autre :: R-X Par défaut: User :: RWX Default: Group :: R-X par défaut: Autre :: RW-
Après la définition des ACL par défaut

Pour définir les ACL par défaut pour un fichier ou un répertoire spécifique, utilisez le 'setfacl' commande. Dans l'exemple ci-dessous, le setfacl La commande définira un nouvel ACLS (lire et exécuter) sur un dossier 'Musique'.

[[e-mail protégé] ~] # setfacl -m d: o: rx music / [[e-mail protégé] ~] # getfacl music / # fichier: music / # propriétaire: root # groupe: root user :: rwx groupe :: r-x autre :: r-x par défaut: utilisateur :: rwx par défaut: groupe :: r-x par défaut: autre :: r-x

Comment définir de nouveaux ACL

Utilisez le 'setfacl ' Commande pour définir ou modifier sur n'importe quel fichier ou répertoire. Par exemple, pour donner lire et écrire Autorisations à l'utilisateur 'Tecmint1'.

# setfacl -m u: tecmint1: rw / tecmint1 / exemple

Comment afficher les ACL

Utilisez le 'getfacl«Commande pour afficher ACL sur n'importe quel fichier ou répertoire. Par exemple, pour afficher ACL sur '/ Tecmint1 / Exemple'Utiliser la commande ci-dessous.

# getFacl / Tecmint1 / Exemple # Fichier: Tecmint1 / Exemple / # Propriétaire: Tecmint1 # Groupe: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint2: R-- Group :: RWX Mask :: RWX Autre ::---

Comment supprimer les ACL

Pour supprimer ACL de n'importe quel fichier / répertoire, nous utilisons X et b Options comme indiqué ci-dessous.

# setfacl -x fichier ACL / répertoire # supprimer uniquement ACL spécifié du fichier / répertoire. # setfacl -b Fichier / répertoire #Removing All ACL à partir du fichier / Direcoty

Implémentons les ACL sur les scénarios suivants.

Deux utilisateurs (Tecmint1 et Tecmint2), tous deux ayant un groupe secondaire commun nommé 'ACL'. Nous allons créer un répertoire appartenant à 'Tecmint1'Et fournira le lire et exécuter autorisation sur ce répertoire à l'utilisateurTecmint2'.

Étape 1: Créer deux utilisateurs et supprimer le mot de passe des deux

[[Protégé par e-mail] ~] # pour l'utilisateur dans Tecmint1 Tecmint2> do> userAdd $ user> passwd -d $ utilisateur> terminé le mot de passe pour l'utilisateur tecmint1. passwd: succès supprimant le mot de passe pour l'utilisateur Tecmint2. passwd: succès

Étape 2: Créer un groupe et des utilisateurs au groupe secondaire.

[[e-mail protégé] ~] # groupAdd ACL [[e-mail protégé] ~] # userMod -g ACL Tecmint1 [[Email Protected] ~] # UserMod -g ACL Tecmint2

Étape 3: Créer un répertoire / Tecmint et changer la propriété à Tecmint1.

[[e-mail protégé] ~] # mkdir / tecmint1 [[e-mail protégé] ~] # chown tecmint1 / tecmint1 /
[[e-mail protégé] ~] # ls -ld / tecmint1 / drwxr-xr-x 2 root tecmint1 4096 17 avril 14:46 / tecmint1 /
[[Protégé par e-mail] ~] # getfacl / tecmint1 GetFacl: supprimer le principal '/' des noms de chemin absolus # Fichier: Tecmint1 # Propriétaire: Tecmint1 # Groupe: Root User :: Rwx Group :: R-X autre :: R-X

Étape 4: Connectez-vous avec Tecmint1 et créer un répertoire dans / Tecmint dossier.

[[Protégé par e-mail] ~] $ Su - Tecmint1 Dernière connexion: jeu 17 avril 14:49:16 IST 2014 sur PTS / 4
[[Protégé par e-mail] ~] $ CD / Tecmint1 / [[Email Protected] Tecmint1] $ MKDIR
[[Protégé par e-mail] Tecmint1] $ ll total 4 drwxrwxr-x 2 tecmint1 tecmint1 4096 17 avril 14:50 Exemple
[[Protégé par e-mail] Tecmint1] $ whoami tecmint1

Étape 5: Définissez maintenant ACL en utilisant 'setfacl', de sorte que 'Tecmint1'aura tout rwx autorisation, 'Tecmint2'n'aura que lire Permission sur 'exemple'Le dossier et autres n'auront aucune autorisation.

$ setfacl -m u: tecmint1: rwx exemple / $ setfacl -m u: Tecmint2: r-- Exemple / $ setfacl -m Autre: --- Exemple / $ GetFacl Exemple / # fichier: Exemple # propriétaire: Tecmint1 # Groupe: Tecmint1 :: RWX Utilisateur: Tecmint1: RWX User: Tecmint2: R-- Groupe :: R-X Mask :: RWX Autre ::---

Étape 6: Maintenant, connectez-vous avec un autre utilisateur I.e. 'Tecmint2«Sur un autre terminal et modifier le répertoire en«/ Tecmint1'. Essayez maintenant de visualiser le contenu en utilisant 'LS«Commande puis essayez de modifier le répertoire et de voir la différence comme ci-dessous.

[[Protégé par e-mail] ~] $ Su - Tecmint2 Dernière connexion: jeu 17 avril 15:03:31 IST 2014 sur PTS / 5
[[Protégé par e-mail] ~] $ cd / tecmint1 / [[e-mail protégé] Tecmint1] $ ls -lr Exemple / exemple /: total 0
[[Protégé par e-mail] Tecmint1] $ CD Exemple / -bash: CD: Exemple /: autorisation refusée 
[[Email Protected] Tecmint1] $ GetFacl Exemple / # Fichier: Exemple # Propriétaire: Tecmint1 # GROUP: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint2: R-- Group :: RWX Mask :: RWX Autre ::---

Étape 7: Maintenant donner 'exécuter' permission a 'Tecmint2' sur 'exemple'dossier puis utilisez 'CD'Commande de voir l'effet. Maintenant 'Tecmint2`` Ayez les autorisations pour afficher et modifier le répertoire, mais n'ont pas d'autorisations pour écrire quoi que ce soit.

[[Email Protected] Tecmint1] $ Setfacl -M U: Tecmint2: R-X Exemple / [[[Email Protected] Tecmint1] $ GetFacl Exemple / # Fichier: Exemple # propriétaire: Tecmint1 # Group: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint1 User :: RWX User: TecMint1: RWX User: Tecmint1 User :: RWX User: TecMint1: RWX User: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint1 User :: RWX User: Tecmint1: RWX User: Tecmint1 User :: RWX User: TecMint1: RWX User: TecMint1 : Tecmint2: R-X Group :: RWX Mask :: RWX Autre ::---
[[Protégé par e-mail] ~] $ Su - Tecmint2 Dernière connexion: jeu 17 avril 15:09:49 IST 2014 sur PTS / 5
[[Protégé par e-mail] ~] $ CD / Tecmint1 / [[Email Protected] Tecmint1] $ CD Exemple / [[Email Protected] Exemple] $ getfacl .
[[Protégé par e-mail] Exemple] $ MKDIR Test MKDIR: Impossible de créer un répertoire «Test»: Permission refusée 
[[Email Protected] Exemple] $ Test Test Touch: Impossible de toucher «test»: permission refusée 

Note: Après la mise en œuvre de l'ACL, vous verrez un supplément '+Sortie pour la sortie 'ls -l' comme ci-dessous.

[[Protégé par e-mail] Tecmint1] # ll total 4 drwxrwx --- + 2 tecmint1 tecmint1 4096 17 avril 17:01 Exemple

Liens de référence

Documentation de l'ACL