les options de assembly affichées dans / proc / mont

IIRC alors les options de assembly montrées dans /proc/mounts ont changé. Il y a quelque time acl et user_xattr ont été montrés, maintenant il semble que seuls noacl et nouser_xattr sont affichés si ces fonctionnalités sont désactivées.

Où est-ce configuré? Cela dépend-il des valeurs compilées par défaut du code de système de files? Comment puis-je vérifier si un volume supporte par exemple ACL? Y a-t-il une meilleure solution que de tester avec setfacl , getfacl ?

Upstream a décidé d'activer acl et user_xattr par défaut et de les supprimer en tant qu'options de assembly ( noacl / nouser_xattr sont toujours mount options de mount valides).

Certains types de filesystems prennent en charge les ACL sans option de assembly, d'autres uniquement avec une option de assembly. Pour ext2 / ext3 / ext4, certaines options de assembly par défaut incluant acl / noacl sont stockées dans le système de files (vous pouvez le voir dans tune2fs -l /dev/BLOCK_DEVICE | grep '^Default mount options:' ). Comme indiqué par don_crissti , pour ext4, si l'option est montrée ou non dépend de la version du kernel (depuis le kernel 2.6.39, acl défaut quel que soit le système de files). Les filesystems tels que vfat et minix n'ont pas de support ACL. Les filesystems tels que tmpfs, xfs et zfs prennent toujours en charge les ACL.

À less que vous ne souhaitiez créer et gérer une grande table de types de filesystems, de versions, de commands par défaut et de versions du kernel, il est impossible de déterminer si un système de files prend en charge les ACL via les options de assembly ou les caractéristiques du système de files. Vous ne pouvez pas dire par pure observation avec getfacl soit comme il sera toujours au less signaler les permissions unix. Même si un système de files prend en charge les lists de contrôle d'access, il peut ne pas prendre en charge les types de lists de contrôle d'access souhaités. Donc, votre meilleur pari est d'appeler setfacl (ou les API C sous-jacentes) pour essayer de définir l'ACL de votre choix. Si le statut d'erreur est EOPNOTSUPP (Opération non prise en charge), vous saurez que le système de files ne prend pas en charge les ACL (ce type).