Ответы:
Расширенные разрешения, такие как списки контроля доступа, установленные с помощью setfacl
и установленные флаги возможностей setcap
, хранятся в том же месте, что и традиционные разрешения, и устанавливают флаги идентификатора [ug], установленные с помощью chmod
: в inode файла.
(Они могут фактически храниться в отдельном блоке на диске, потому что индекс имеет фиксированный размер, в котором есть место для традиционных битов разрешений, но не для потенциально неограниченных расширенных разрешений. Но это имеет значение только в редких случаях, таких как необходимость заботиться о том, что setcap
может не хватить места на диске. Но даже chmod
может не хватить места на диске в системе, которая использует дедупликацию!)
GNU ls не отображает атрибуты setcap файла. Вы можете отобразить их с помощью getcap
. Вы можете перечислить все расширенные атрибуты с помощью getfattr -d -m -
; Атрибут setcap вызывается, security.capability
и он кодируется в двоичном формате, который getcap
декодирует для вас.
setcap устанавливает возможности файлов, которые хранятся в расширенном атрибуте файловой системы. Это объясняется в man 7 capabilities
:
Наборы возможностей файла хранятся в расширенном атрибуте (см. Setxattr (2)) с именем security.capability.
Вы можете проверить возможности запущенного процесса, изучив поля CapInh / CapPrm / CapEff в /proc/PID/status
. См. Мой ответ на « Как установить возможности с помощью команды setcap? » Для объяснения того, как эти возможности применяются к процессу в exec.
/usr/bin/sleep
и дайте возможности этой копии.