la liste de contrôle d’accès (ACL) fournit un mécanisme d’autorisation supplémentaire et plus flexible pour les systèmes de fichiers. Il est conçu pour aider avec les autorisations de fichiers UNIX. ACL vous permet d’accorder des autorisations pour n’importe quel utilisateur ou groupe à n’importe quelle ressource de disque.
Installation
Le Paquet acl est une dépendance de systemd, il doit déjà être installé.
activer ACL
pour activer ACL, le système de fichiers doit être monté avec l’optionacl
. Vous pouvez utiliser fstab pour le rendre permanent sur votre système.,
Il est possible que l’option acl
soit déjà active en tant qu’option de montage par défaut sur le système de fichiers. Btrfs et les systèmes de fichiers Ext2/3/4 le font aussi. Utilisez la commande suivante pour vérifier ext* partitions formatées pour l’option:
# tune2fs -l /dev/sdXY | grep "options de montage par Défaut:"
options de montage par Défaut: user_xattr acl
vérifiez Également que le défaut de l’option de montage n’est pas remplacé, dans ce cas, vous verrez noacl
dans un /proc/mounts
dans la ligne correspondante.,
Vous pouvez définir les options de montage par défaut d’un système de fichiers en utilisant la commandetune2fs -o option partition
, par exemple:
# tune2fs -o acl /dev/sdXY
En utilisant les options de montage par défaut au lieu d’une entrée dans/etc/fstab
est très utile 4adafe218f »>
option également sur d’autres machines Linux. Il n’est pas nécessaire de modifier la /etc/fstab
sur chaque ordinateur.
L’ACL peut être modifiée à l’aide de la commande setfacl.
astuce: vous pouvez lister les modifications d’autorisation de fichier/répertoire sans modifier les autorisations (c’est-à-dire l’exécution à sec) en ajoutant l’indicateur
--test
.,
Pour définir des autorisations pour les autres:
# setfacl -m "other:permissions" <file/dir>
pour permettre À tous les nouveaux fichiers ou les répertoires d’hériter des entrées du répertoire parent (ce qui n’affectera pas les fichiers qui seront copiés dans le répertoire):
# setfacl -dm "entry" <dir>
Pour supprimer une entrée:
# setfacl -x "entry" <file/dir>
Pour supprimer les entrées par défaut:
# setfacl -k <file/dir>
Pour supprimer toutes les entrées (entrées de la propriétaire, groupe et autres sont conservés):
# setfacl -b <file/dir>
L’exactitude factuelle de cet article ou de l’article est contestée.,
raison: la note d’origine sur l’option--mask
(qui a été prise à partir de setfacl(1)) a été déterminée comme inexacte, mais la nouvelle note ne semble pas correcte non plus. Voir la page de discussion pour plus de détails. (Discuter dans Talk:listes de contrôle d’accès#entrée de masque ACL)
remarque: le comportement par défaut de setfacl est de recalculer l’entrée de masque ACL, sauf si une entrée--mask
a été explicitement donnée. L’entrée de masque indique les autorisations maximales autorisées pour les utilisateurs (autres que le propriétaire) et pour les groupes., Sauf si défini explicitement, cela correspondra aux autorisations du groupe par défaut. Pour clarifier ce que cela signifie, supposons que le groupe possédant un répertoire dispose d’autorisations r-X. Si vous ajoutez un utilisateur ou un groupe ACL avec des autorisations rwx, les autorisations effectives de cet utilisateur ou groupe seront r-X. La raison en est qu’il n’y a pas de surprises lorsqu’un fichier d’un système qui ne prend pas en charge les ACL est mis à disposition sur un système qui le fait. .
astuce: pour appliquer des opérations à tous les fichiers et répertoires de manière récursive, ajoutez l’argument
-R
.,c
# fichier: abc# propriétaire: quelqu'un# groupe: someoneuser::rw-utilisateur:johnny:r-xgroup::r-mask::r-xother::r--
Supprimer toutes les entrées ACL:
# setfacl -b abc
Vérifier les autorisations:
# getfacl abc
# fichier: abc# propriétaire: quelqu'un# groupe: someoneuser::rw-group::r--autres::r--
la Sortie de la commande ls
Vous remarquerez qu’il y a une ACL pour un dossier parce qu’il va exposer une +
(signe plus) après ses permissions Unix dans la sortie de ls -l
.,
$ ls -l /dev/audio
crw-rw----+ 1 racine audio 14, 4 nov. 9 12:49 /dev/audio
get getfacl /dev/audio
octroi d’autorisations d’exécution pour les fichiers privés à un serveur web
la technique suivante décrit comment un processus comme un serveur web peut avoir accès aux fichiers qui résident dans le répertoire personnel d’un utilisateur, sans compromettre la sécurité en donnant accès au monde entier.,
dans ce qui suit, Nous supposons que le serveur web s’exécute en tant qu’utilisateurhttp
et lui accordons l’accès au répertoire personnel degeoffrey
/home/geoffrey
.
La première étape est l’octroi d’autorisations d’exécution pour l’utilisateur http
:
# setfacl -m "u:http:--x" /home/geoffrey
Remarque: les autorisations d’Exécution d’un répertoire sont nécessaires pour un processus de lister le contenu du répertoire.,
le http
est maintenant en mesure d’accéder à des fichiers dans /home/geoffrey
, d’autres n’ont plus besoin d’accès:
# chmod o-rx /home/geoffrey
Utiliser getfacl
pour vérifier les modifications:
$ getfacl /home/geoffrey
Comme ci-dessus montre, other
‘s n’ont plus de toutes les autorisations, mais l’utilisateur http
est toujours en mesure d’accéder aux fichiers, donc la sécurité pourrait être augmentée.,
Voir aussi
- getfacl(1)
- setfacl(1)
- POSIX Listes de Contrôle d’Accès sous Linux
- Comment faire pour définir des permissions par défaut pour tous les dossiers/fichiers dans un répertoire?
Leave a Reply