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