RSBAC_GET_ATTR_N(2)

НАЗВАНИЕ
rsbac_get_attr_n - получает RSBAC атрибут со значением

РЕЗЮМЕ
#include <rsbac/types.h>

#include <rsbac/syscalls.h>

int rsbac_get_attr_n(enum rsbac_target_t target, char * t_name, enum rsbac_attribute_t attr, union rsbac_attibute_value_t * value, int inherit);

ОПИСАНИЕ
rsbac_get_attr_n Запрашивает ядро,о получении значения атрибута attr для объекта типа target t_name. Если значение параметра inherit отлично 0, но для вычисления окончательного результата используются значения для родительского каталога. Допустимые объекты - IPC, SCD, USER, PROCESS. Структуры данных определены следующим образом:

    typedef u_char rsbac_ff_flags_t;
    #define FF_read_only 1
    #define FF_execute_only 2
    #define FF_search_only 4
    enum    rsbac_ms_trusted_t {MT_not_trusted, MT_read, MT_full, MT_none};
    enum   rsbac_target_t {T_FILE, T_DIR, T_DEV, T_IPC, T_SCD,
                           T_USER, T_PROCESS, T_NONE};
    enum   rsbac_attribute_t {
               A_security_level, A_object_category,
               A_data_type, A_system_role, A_integrity_role,
               A_pm_role,
               A_process_type, A_pm_process_type, A_pm_current_task,
               A_pm_object_class, A_pm_ipc_purpose,
               A_pm_object_type, A_program_type, A_pm_program_type,
               A_pm_tp, A_pm_task_set, A_owner, A_pseudo,
               A_current_sec_level, A_min_write_open,
               A_max_read_open, A_mac_auto, A_mac_trusted,
               A_mac_trusted_for_user, A_mac_check,
               A_cwi_rel_id,
               A_ms_scanned, A_ms_trusted,
               A_ms_backbuf, A_ms_buflen, A_ms_str_nr,
               A_ms_str_offset,
               A_ms_sock_trusted_tcp, A_ms_sock_trusted_udp,
               A_ff_flags,
               A_log_array_low, A_log_array_high,
               A_none};
    union  rsbac_attribute_value_t
           {
              enum rsbac_security_level_t   security_level;
              enum rsbac_object_category_t  object_category;
              enum rsbac_data_type_t        data_type;
              enum rsbac_system_role_t      system_role;
              enum rsbac_integrity_role_t   integrity_role;
              enum rsbac_pm_role_t          pm_role;
              enum rsbac_process_type_t     process_type;
              enum rsbac_pm_process_type_t  pm_process_type;
              rsbac_pm_task_id_t            pm_current_task;
              rsbac_pm_object_class_id_t    pm_object_class;
              rsbac_pm_purpose_id_t         pm_ipc_purpose;
              enum rsbac_pm_object_type_t   pm_object_type;
              rsbac_program_type_t          program_type;
              rsbac_pm_program_type_t       pm_program_type;
              rsbac_pm_tp_id_t              pm_tp;
              rsbac_pm_task_set_id_t        pm_task_set;
              rsbac_uid_t                   owner; /* process owner */
              rsbac_pseudo_t                pseudo;
              enum rsbac_security_level_t   current_sec_level;
              enum rsbac_security_level_t   min_write_open;
              enum rsbac_security_level_t   max_read_open;
              boolean                       mac_auto;
              boolean                       mac_trusted;
              rsbac_uid_t                   mac_trusted_for_user;
              boolean                       mac_check;
              rsbac_cwi_relation_id_t       cwi_rel_id;
              rsbac_ms_scanned_t            ms_scanned;
              rsbac_ms_trusted_t            ms_trusted;
              char                        * ms_backbuf;
              int                           ms_buflen;
              int                           ms_str_nr;
              int                           ms_str_offset;
              enum rsbac_ms_sock_trusted_t  ms_sock_trusted_tcp;
              enum rsbac_ms_sock_trusted_t  ms_sock_trusted_udp;
              rsbac_ff_flags_t              ff_flags;
              rsbac_log_array_t             log_array_low;
              rsbac_log_array_t             log_array_high;
              int                           dummy;
              long                          long_dummy;
           };

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
rsbac_get_attr_n В случае удачного завершения фукция возвращает 0 иначе код ошибки.

ОШИБКИ

EPERM
    Модуль принятия решений отклонил запрос на чтение атрибута для данного пользователя/процесса.

RSBAC_EINVALIDTARGET
    Объект недопустим, например, FILE, DEV or DIR.

RSBAC_EINVALIDVALUE
    Значение переменной value = NULL.

RSBAC_EINVALIDATTR
    Атрибут недопустим для данного объекта.

RSBAC_ENOTINITIALIZED
    RSBAC система не инициализирована, так что никакие атрибуты не доступны.

СМ. ТАКЖЕ
rsbac_get_attr(2),rsbac_set_attr(2),rsbac_set_attr_n(2),rsbac_remove_target(2),rsbac_remove_target_n(2).

ПРАВА
(c) Copyright RSBAC - Amon Ott <ao@compuniverse.com> Перевод Sergie Pugachev <fd_rag@linux.ru.net>