GNU/Linux >> Tutoriels Linux >  >> Linux

UNIX/Linux :notions de base sur les listes de contrôle d'accès (ACL)

Pourquoi avons-nous besoin d'ACL ?

Chaque fichier sur n'importe quel système de fichiers UNIX aura un propriétaire/groupe et un ensemble d'autorisations. Imaginez un cas où plusieurs utilisateurs ont besoin d'accéder au même fichier et que les utilisateurs appartiennent à des groupes différents. Les listes de contrôle d'accès aux fichiers (FACL) ou simplement les ACL sont la liste des utilisateurs/groupes supplémentaires et leur autorisation d'accès au fichier.

Comment savoir quand un fichier est associé à une ACL

Il est très facile de savoir quand un fichier est associé à une ACL. ls -l commande produirait une sortie comme indiqué ci-dessous.

# ls -l
-rw-r--r-+ 1   root   root  0  Sep  19  14:41  file

Notez le + signer à la fin des autorisations. Cela confirme que le fichier est associé à une liste de contrôle d'accès.

Affichage des ACL

Pour afficher les informations ACL détaillées d'un fichier, utilisez le getfacl commande.

# getfacl /tmp/test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
user:sam:rwx
group::r--
mask::rwx
other:---

Remarquez les 3 utilisateurs différents : lignes. La première ligne répertorie les autorisations de fichier standard du propriétaire du fichier. Les 2 autres autorisations d'utilisateur sont l'autorisation individuelle pour l'utilisateur john et sam. Le champ de masque ici ne s'applique qu'aux autorisations supplémentaires que nous avons accordées à l'utilisateur et aux groupes. Si le masque est défini sur rwx, les autorisations de lecture, d'écriture et d'exécution seront accordées à des utilisateurs/groupes supplémentaires. Si le masque est défini sur r-x, l'autorisation d'écriture ne sera pas accordée aux utilisateurs/groupes supplémentaires.En général, NE PAS définissez le masque sur autre chose que rwx. La valeur du masque n'affecte pas les autorisations utilisateur/groupe/autres UNIX standard.

Fichier sans ACL
Si vous exécutez la commande getfacl sur un fichier sans ACL, les lignes supplémentaires "user:" et "mask" ne seront pas affichées et les autorisations de fichier standard seront affichées.

# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

Création et gestion des FACL

Le setfacl La commande est utilisée pour définir l'ACL sur le fichier donné. Pour donner un accès rw à l'utilisateur john sur le fichier /tmp/test :

# setfacl -m u:john:rw /tmp/test

L'option -m indique à setfacl de modifier les ACL sur le ou les fichiers mentionnés dans la ligne de commande. Au lieu de l'utilisateur john, nous pouvons avoir un groupe pour avoir une autorisation spécifique sur le fichier :

# setfacl -m g:accounts:rw /tmp/test

Les FACL pour plusieurs utilisateurs et groupes peuvent également être définis avec une seule commande :

# setfacl -m u:john:rw,g:accounts:rwx /tmp/test

FACL par défaut sur les répertoires

Les ACL par défaut ne sont créées que sur les répertoires. Lorsque vous définissez des ACL par défaut sur des répertoires, tous les fichiers créés dans ce répertoire se verront également attribuer automatiquement cette FACL par défaut.

Pour créer une FACL par défaut sur un répertoire :

# setfacl -m default:u:john:rw /accounts
# getfacl accounts/
# file: accounts/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:john:rw-
default:group::r-x
default:mask::rwx
default:other::r-x

Créez maintenant un nouveau fichier dans le répertoire des comptes et listez les FACL sur le fichier :

# touch /accounts/test
# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
group::r-x			#effective:r--
mask::rw-
other::r--

Suppression des FACL

Pour supprimer FACL, utilisez la commande setfacl avec l'option -x :

# setfacl -x u:john /tmp/test

La commande ci-dessus supprime l'ACL pour l'utilisateur john sur le fichier /tmp/test. Les ACL des autres utilisateurs/groupes, le cas échéant, ne sont pas affectées.

Pour supprimer toutes les ACL associées à un fichier, utilisez l'option -b avec setfacl :

# setfacl -b /tmp/test

Sauvegarde des FACL

Plusieurs fois, le logiciel de sauvegarde peut ne pas copier les métadonnées liées à la FACL sur les fichiers. Dans ce cas, vous souhaiterez peut-être sauvegarder les informations FACL sur les fichiers. Désormais, la FACL de tous les fichiers d'un répertoire (y compris tous les sous-répertoires) peut être copiée dans un seul fichier.

# cd /accounts
# getfacl -R * > accounts_facl        ( -R -> recursive )

Restauration des FACL

Lorsque vous restaurez les fichiers dans le répertoire /accounts, vous devrez restaurer les FACL associées aux fichiers dans ce répertoire. Pour ce faire, utilisez le fichier de sauvegarde FACL accounts_facl avec le -restore choix :

# setfacl --restore=accounts_facl


Linux
  1. Surveillance de l'accès aux fichiers Linux ?

  2. Linux - Comment inspecter les informations de structure de répertoire d'un fichier Unix/linux ?

  3. RHEL 7 - Notes RHCSA - Créer et gérer des listes de contrôle d'accès (ACL)

  4. Comment configurer ACL (listes de contrôle d'accès) dans le système de fichiers Linux

  5. exemples de commandes tail sous UNIX/Linux

Listes de contrôle d'accès sur Linux expliquées

Commande AWK sous Linux/Unix

Linux contre Unix

Principes de base de la liaison Ethernet sous Linux

Comment compter les lignes d'un fichier sous UNIX/Linux

accès simultané au fichier linux