RHEL 7 - Remarques RHCSA (aide-mémoire)
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 sur le fichier. Bien que les autorisations de fichier par défaut fassent parfaitement leur travail, elles ne vous permettent pas d'accorder des autorisations à plus d'un utilisateur ou à un groupe sur le même fichier.
Comment savoir quand un fichier est associé à une ACL
la commande ls -l produirait une sortie comme indiqué ci-dessous. Notez le + signer à la fin des autorisations. Cela confirme que le fichier est associé à une liste de contrôle d'accès.
# ls -l -rw-r--r-+ 1 root root 0 Sep 19 14:41 file
Affichage des ACL
Pour afficher les informations ACL détaillées d'un fichier, utilisez la commande getfacl. Si vous regardez attentivement, les utilisateurs sam et john ont des autorisations supplémentaires (montrées en surbrillance). Les autorisations d'utilisateur/groupe par défaut sont spécifiées à l'aide de "user ::permission" et "group ::
# getfacl /tmp/test # file: test # owner: root # group: root user::rw- user:john:rw- user:sam:rwx group::r-- mask::rwx other:---
En revanche, si vous vérifiez les ACL sur un fichier avec "pas d'ACL", les lignes "utilisateur :" et la ligne "masque" supplémentaires 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
La commande setfacl 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
ACL par défaut
En définissant une ACL par défaut, vous déterminerez les autorisations qui seront définies pour tous les nouveaux éléments créés dans le répertoire. Mais les autorisations des fichiers et sous-répertoires existants restent les mêmes.
Pour créer une FACL par défaut sur un répertoire :
# setfacl -m default:u:john:rw /accounts
Notez les permissions par défaut dans la commande getfacl :
# 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
Suppression des FACL
Pour supprimer les ACL, 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/testVous pouvez également créer une sauvegarde des ACL à l'aide de getfacl et restaurer les ACL à l'aide de la commande setfacl. Pour créer la sauvegarde, utilisez getfacl -R /dir> file.acls. Pour restaurer les paramètres à partir du fichier de sauvegarde, utilisez setfacl –restore=file.acl