Где используется setcap, где хранится разрешение?

11

Использование setcapдля предоставления дополнительных разрешений двоичному файлу должно записать новое разрешение где-нибудь, в хранилище или в памяти, где оно хранится?

Использование lsofas is не работает, потому что процесс исчезает слишком быстро.

Zulgrib
источник
Используйте другой процесс. Сделайте копию /usr/bin/sleepи дайте возможности этой копии.
Хауке Лагинг

Ответы:

9

Расширенные разрешения, такие как списки контроля доступа, установленные с помощью setfaclи установленные флаги возможностей setcap, хранятся в том же месте, что и традиционные разрешения, и устанавливают флаги идентификатора [ug], установленные с помощью chmod: в inode файла.

(Они могут фактически храниться в отдельном блоке на диске, потому что индекс имеет фиксированный размер, в котором есть место для традиционных битов разрешений, но не для потенциально неограниченных расширенных разрешений. Но это имеет значение только в редких случаях, таких как необходимость заботиться о том, что setcapможет не хватить места на диске. Но даже chmodможет не хватить места на диске в системе, которая использует дедупликацию!)

GNU ls не отображает атрибуты setcap файла. Вы можете отобразить их с помощью getcap. Вы можете перечислить все расширенные атрибуты с помощью getfattr -d -m -; Атрибут setcap вызывается, security.capabilityи он кодируется в двоичном формате, который getcapдекодирует для вас.

Жиль "ТАК - перестань быть злым"
источник
4

setcap устанавливает возможности файлов, которые хранятся в расширенном атрибуте файловой системы. Это объясняется в man 7 capabilities:

Наборы возможностей файла хранятся в расширенном атрибуте (см. Setxattr (2)) с именем security.capability.

Вы можете проверить возможности запущенного процесса, изучив поля CapInh / CapPrm / CapEff в /proc/PID/status. См. Мой ответ на « Как установить возможности с помощью команды setcap? » Для объяснения того, как эти возможности применяются к процессу в exec.

sebasth
источник
capsh --decode = может пригодиться для получения удобочитаемых данных.
Зулгриб