Réponses:
Les autorisations étendues telles que les listes de contrôle d'accès définies par setfacl
et les indicateurs de capacité définis par setcap
sont stockées au même endroit que les autorisations traditionnelles et définissent les indicateurs d'ID [ug] définis par chmod
: dans l'inode du fichier.
(Ils peuvent en fait être stockés dans un bloc séparé sur le disque, car un inode a une taille fixe qui a de la place pour les bits d'autorisation traditionnels mais pas pour les autorisations étendues potentiellement illimitées. Mais cela n'a d'importance que dans de rares cas, comme des soins qui setcap
pourraient manquer d'espace disque. Mais même chmod
pourraient manquer d'espace disque sur un système qui utilise la déduplication!)
GNU ls n'affiche pas les attributs setcap d'un fichier. Vous pouvez les afficher avec getcap
. Vous pouvez répertorier tous les attributs étendus avec getfattr -d -m -
; l'attribut setcap est appelé security.capability
et il est encodé dans un format binaire qui getcap
décode pour vous.
setcap définit les capacités des fichiers qui sont stockées dans l'attribut étendu du système de fichiers. Ceux-ci sont expliqués dans man 7 capabilities
:
Les ensembles de capacités de fichier sont stockés dans un attribut étendu (voir setxattr (2)) nommé security.capability.
Vous pouvez inspecter les capacités d'un processus en cours d'exécution en examinant les champs CapInh / CapPrm / CapEff dans /proc/PID/status
. Voir ma réponse à " Comment définir les capacités avec la commande setcap? " Pour une explication sur la façon dont les capacités sont appliquées au processus lors de l'exécution.
/usr/bin/sleep
et donnez-lui les capacités.