Korzystając setcap
z dodatkowych uprawnień do pliku binarnego, należy zapisać nowe pozwolenie gdzieś, w pamięci lub w pamięci, gdzie jest ono przechowywane?
Używanie lsof
as nie działa, ponieważ proces zanika zbyt szybko.
capabilities
setcap
Zulgrib
źródło
źródło
/usr/bin/sleep
i daj możliwości tej kopii.Odpowiedzi:
Rozszerzone uprawnienia, takie jak listy kontroli dostępu ustawione przez
setfacl
i flagi możliwości ustawione przezsetcap
są przechowywane w tym samym miejscu, co tradycyjne uprawnienia, i ustaw flagi [ug] id ustawione przezchmod
: 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 nawetchmod
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ływanysecurity.capability
i jest zakodowany w formacie binarnym, którygetcap
dekoduje za ciebie.źródło
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
: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.źródło