Odpowiedzi:
Rozszerzone uprawnienia, takie jak listy kontroli dostępu ustawione przez setfacl
i flagi możliwości ustawione przez setcap
są przechowywane w tym samym miejscu, co tradycyjne uprawnienia, i ustaw flagi [ug] id ustawione przez chmod
: w i-węzle pliku.
(Mogą być faktycznie przechowywane w oddzielnym bloku na dysku, ponieważ i-węzeł ma ustalony rozmiar, który ma miejsce na tradycyjne bity uprawnień, ale nie na potencjalnie nieograniczone rozszerzone uprawnienia. Ale to ma znaczenie tylko w rzadkich przypadkach, takich jak konieczność opieka, która setcap
może zabraknąć miejsca na dysku. Ale nawet chmod
zabraknie miejsca na dysku w systemie, który korzysta z deduplikacji!)
GNU ls nie wyświetla atrybutów setcap pliku. Możesz je wyświetlić za pomocą getcap
. Możesz wymienić wszystkie rozszerzone atrybuty za pomocą getfattr -d -m -
; atrybut setcap jest wywoływany security.capability
i jest zakodowany w formacie binarnym, który getcap
dekoduje za ciebie.
setcap ustawia możliwości plików, które są przechowywane w rozszerzonym atrybucie systemu plików. Zostały one wyjaśnione w man 7 capabilities
:
Zestawy możliwości plików są przechowywane w rozszerzonym atrybucie (patrz setxattr (2)) o nazwie security.capability.
Możesz sprawdzić możliwości uruchomionego procesu, badając pola CapInh / CapPrm / CapEff w /proc/PID/status
. Zobacz moją odpowiedź na „ Jak ustawić możliwości za pomocą polecenia setcap? ”, Aby uzyskać wyjaśnienie, w jaki sposób możliwości są stosowane do przetwarzania w exec.
/usr/bin/sleep
i daj możliwości tej kopii.