include/parsec/parsec_cap.h#

Structures and Types Documentation#

typedef parsec_cap_t#

typedef uint32_t parsec_cap_t;

struct parsec_caps_t#

Parsec-привилегии процесса

Variables:

  • parsec_cap_t cap_effective Текущие

  • parsec_cap_t cap_inheritable Для наследования

  • parsec_cap_t cap_permitted Возможные

Functions Documentation#

function parsec_capget#

Считывание списка parsec-приивлегии процесса

int parsec_capget (
    pid_t pid,
    parsec_caps_t *data
)

Parameters:

  • pid номер процесса

  • data указатель на структуру parsec-привилегий

Returns:

0 в случае успеха

function parsec_capset#

Установка списка parsec-приивлегии процессу

int parsec_capset (
    pid_t pid,
    const parsec_caps_t *data
)

Parameters:

  • pid номер процесса

  • data указатель на структуру parsec-привилегий

Returns:

0 в случае успеха

Macros Documentation#

define CAP_TO_MASKUL#

#define CAP_TO_MASKUL (
    x
) (1UL << (x))

Устанавливает бит привилегии в 64 битовую маску

define CAP_TO_MASKUL32#

#define CAP_TO_MASKUL32 (
    x
) (1UL << ((x) & 31))

Устанавливает бит привилегии, не привышающую 32 бита

define CAP_TO_MASKULL#

#define CAP_TO_MASKULL (
    x
) (1ULL << (x))

Устанавливает бит привилегии в 64 битовую маску

define PARSEC_CAP_ASTRAMODE1_MASK#

#define PARSEC_CAP_ASTRAMODE1_MASK ( \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_IGNMACLVL) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_IGNMACCAT) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_MAC_SOCK) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_PRIV_SOCK) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_READSEARCH) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_SUMAC) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_CCNR_RELAX) \
    )

Устанавливает основные привилегии игнорирования мандатной политики: PARSEC_CAP_IGNMACLVL, PARSEC_CAP_IGNMACCAT, PARSEC_CAP_MAC_SOCK, PARSEC_CAP_PRIV_SOCK, PARSEC_CAP_READSEARCH, PARSEC_CAP_SUMAC, PARSEC_CAP_CCNR_RELAX

define PARSEC_CAP_AUDIT#

#define PARSEC_CAP_AUDIT 1

Позволяет управлять политикой аудита 0x000002

define PARSEC_CAP_BYPASS_XATTR#

#define PARSEC_CAP_BYPASS_XATTR 18

Отключает проверку подписи файлов в xattr 0x040000

define PARSEC_CAP_CAP#

#define PARSEC_CAP_CAP 10

Позволяет процессу устанавливать себе непротиворечивый набор привилегий и читать привилегии других процессов 0x000400

define PARSEC_CAP_CCNR_RELAX#

#define PARSEC_CAP_CCNR_RELAX 20

Разрешает при работе в расширенном режиме МКЦ (strict-mode) в каталоге с атрибутом ccnr операции над вложенными файловыми объектами с классификационными метками не выше классификационной метки данного каталога. При этом значение параметра ядра parsec.ccnr_relax игнорируется 0x100000

define PARSEC_CAP_CHMAC#

#define PARSEC_CAP_CHMAC 3

Позволяет субъекту изменять метку безопасности объекта, если уровень целостности объекта меньше или равен уровню целостности субъекта. Привилегия позволяет изменять атрибуты объекта для мандатного управления доступом. Привилегия позволяет только понижать уровень целостности объекта. Привилегия не позволяет изменять атрибуты объекта для МКЦ. Позволяет изменять метки безопастности файловых объектов 0x000008

define PARSEC_CAP_FS_MASK#

#define PARSEC_CAP_FS_MASK ( \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_FILE_CAP) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_CHMAC) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_IGNMACLVL) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_IGNMACCAT) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_UPDATE_ATIME) | \
        PARSEC_CAP_TO_MASK(PARSEC_CAP_READSEARCH) \
    )

Устанавливает основные привилегии для работы с фаловыми объектами: PARSEC_CAP_FILE_CAP, PARSEC_CAP_CHMAC, PARSEC_CAP_IGNMACLVL, PARSEC_CAP_IGNMACCAT, PARSEC_CAP_UPDATE_ATIME, PARSEC_CAP_READSEARCH

define PARSEC_CAP_IGNMACCAT#

#define PARSEC_CAP_IGNMACCAT 5

Позволяет игнорировать мандатную политику по категориям доступа 0x000020

define PARSEC_CAP_IGNMACINT#

#define PARSEC_CAP_IGNMACINT 13

Позволяет игнорировать мандатную политику по уровням целостности 0x002000

define PARSEC_CAP_IGNMACLVL#

#define PARSEC_CAP_IGNMACLVL 4

Позволяет игнорировать мандатную политику по уровням конфиденциальности 0x000010

define PARSEC_CAP_INHERIT_INTEGRITY#

#define PARSEC_CAP_INHERIT_INTEGRITY 17

Позволяет автоматически устанавливать максимально возможную целостность файлового объекта, не превышающую целостность процесса-создателя и контейнера 0x020000

define PARSEC_CAP_IPC_OWNER#

#define PARSEC_CAP_IPC_OWNER 16

Отменяет мандатные ограничения при работе с сущностями IPC 0x010000

define PARSEC_CAP_MAC_SOCK#

#define PARSEC_CAP_MAC_SOCK 11

Позволяет изменять метки безопасности UNIX-сокетов 0x000800

define PARSEC_CAP_NUM#

#define PARSEC_CAP_NUM 21

Количество возможных parsec-привилегий

define PARSEC_CAP_PRIV_SOCK#

#define PARSEC_CAP_PRIV_SOCK 8

Позволяет процессу создавать с атрибутом ehole новые сетевые сокеты, игнорирующие мандатную политику 0x000100

define PARSEC_CAP_PROCFS#

#define PARSEC_CAP_PROCFS 19

Позволяет игнорировать уровни конфиденциальности и уровни целостности при работе с /proc 0x080000

define PARSEC_CAP_READSEARCH#

#define PARSEC_CAP_READSEARCH 9

Позволяет игнорировать мандатную политику при чтении и поиске файловых объектов 0x000200

define PARSEC_CAP_SETMAC#

#define PARSEC_CAP_SETMAC 2

Позволяет изменять классификационную метку безопасности текущего процесса. При работе в расширенном режиме МКЦ (strict-mode) привилегия позволяет только повышать уровень конфиденциальности и добавлять категории конфиденциальности. Привилегия позволяет только понижать уровень целостности. 0x000004

define PARSEC_CAP_SIG#

#define PARSEC_CAP_SIG 6

Позволяет посылать сигналы процессам, игнорируя мандатную политику 0x000040

define PARSEC_CAP_SUMAC#

#define PARSEC_CAP_SUMAC 14

Позволяет запускать процессы с другой классификационной меткой 0x004000

define PARSEC_CAP_TO_MASK#

#define PARSEC_CAP_TO_MASK (
    x
) (1 << (x))

Устанавливает бит привилегии

define PARSEC_CAP_UNSAFE_SETXATTR#

#define PARSEC_CAP_UNSAFE_SETXATTR 12

Позволяет устанавливать мандатные атрибуты файловых объектов без учета мандатных атрибутов родительского объекта-контейнера. Используется для восстановления файловых объектов из резервных копий и при установленном значении «1» для параметра /parsecfs/unsecure_setxattr 0x001000

define PARSEC_CAP_UPDATE_ATIME#

#define PARSEC_CAP_UPDATE_ATIME 7

Позволяет изменять время доступа к файловым объектам 0x000080

define parsec_cap_is_fs_cap#

#define parsec_cap_is_fs_cap (
    c
) (PARSEC_CAP_TO_MASK(c) & PARSEC_CAP_FS_MASK)

Позволяет проверить у процесса наличие привилегий, включенных в PARSEC_CAP_FS_MASK