Ссылка mac_policy.h
Интерфейсы ядра для модулей политики MAC
Этот заголовок определяет список операций, определяющихся TrustedBSD MAC Framwork на Дарвине. Модули Политики MAC регистрируются в платформе для объявления интереса к определенному набору операций. Если интерес к точке входа не будет объявлен, то политика будет проигнорирована, когда Платформа оценит ту точку входа.
Включенные заголовки
<security/_label.h>
Это точки входа, соответствующие событиям жизненного цикла для объектов ядра, таких как инициализация, создание и уничтожение.
Большинство политик (что использование маркирует) инициализирует метки путем выделения площади для специфичных для политики данных. В большинстве случаев разрешено спать во время операций инициализации метки; будет отмечено, когда это не будет разрешено.
Инициализация обычно не будет требовать выполнения больше, чем выделение универсальной метки для данного объекта. Что следует, инициализация является созданием, где метка сделана определенной для объекта, это связано с. Уничтожение происходит, когда метка больше не необходима, такой как тогда, когда уничтожается соответствующий объект. Вся необходимая очистка должна быть выполнена в метке, уничтожают операции.
Где возможно, точки входа метки имеют идентичные параметры. Если модуль политики не запрашивает специфичную для структуры информацию метки, та же функция может быть зарегистрирована в векторе работы политики. Много политик реализуют два таких универсальных вызова выделения: один для обрабатывания sleepable запросов, и один для обработки потенциально non-sleepable запросов.
-
mac_policy_register mac_policy_register
Доступный в OS X v10.5 через OS X v10.5Процедура регистрации модуля политики MAC
Объявление
Objective C
int mac_policy_register ( struct mac_policy_conf *mpc, mac_policy_handle_t *handlep, void *xd );
Обсуждение
Эта функция вызвана для регистрации политики в платформе MAC. Модуль политики будет обычно вызывать это от Дарвина процедура регистрации KEXT.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
mac_policy_unregister mac_policy_unregister
Доступный в OS X v10.5 через OS X v10.5De-процедура-регистрации модуля политики MAC
Объявление
Objective C
int mac_policy_unregister ( mac_policy_handle_t handle );
Обсуждение
Эта функция вызвана для вычеркивания из списка политики с платформой theD MAC. Модуль политики будет обычно вызывать это от Дарвина de-процедура-регистрации KEXT.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
Это точки входа, соответствующие событиям жизненного цикла для объектов ядра, таких как инициализация, создание и уничтожение.
Большинство политик (что использование маркирует) инициализирует метки путем выделения площади для специфичных для политики данных. В большинстве случаев разрешено спать во время операций инициализации метки; будет отмечено, когда это не будет разрешено.
Инициализация обычно не будет требовать выполнения больше, чем выделение универсальной метки для данного объекта. Что следует, инициализация является созданием, где метка сделана определенной для объекта, это связано с. Уничтожение происходит, когда метка больше не необходима, такой как тогда, когда уничтожается соответствующий объект. Вся необходимая очистка должна быть выполнена в метке, уничтожают операции.
Где возможно, точки входа метки имеют идентичные параметры. Если модуль политики не запрашивает специфичную для структуры информацию метки, та же функция может быть зарегистрирована в векторе работы политики. Много политик реализуют два таких универсальных вызова выделения: один для обрабатывания sleepable запросов, и один для обработки потенциально non-sleepable запросов.
-
Поствыбор события аудита
Объявление
Objective C
typedef int mpo_audit_check_postselect_t( kauth_cred_t cred, unsigned short syscode, void *args, int error, int retval );
Параметры
cred
Подчиненные учетные данные
syscode
Номер Syscall
args
Параметры Syscall
error
Syscall errno
retval
Возвращаемое значение Syscall
Это - поствыбор аудита Платформы MAC, который вызывают прежде, чем выйти из syscall, чтобы определить, должно ли фиксироваться событие аудита. Возвращаемое значение MAC_AUDIT_NO вынуждает запись аудита быть подавленной. Любое другое возвращаемое значение приводит к фиксировавшей записи аудита.
Возвращаемое значение
Возвратите MAC_AUDIT_NO для принуждения утаивания записи аудита. Любое другое значение приводит к фиксировавшей записи аудита.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Предварительный выбор события аудита
Объявление
Objective C
typedef int mpo_audit_check_preselect_t( kauth_cred_t cred, unsigned short syscode, void *args );
Параметры
cred
Подчиненные учетные данные
syscode
Номер Syscall
args
Параметры Syscall
Это - аудит Платформы MAC, предварительно выбираются, который вызывают, прежде чем syscall вводится, чтобы определить, должно ли быть создано событие аудита. Если политика MAC вынуждает syscall контролироваться, MAC_AUDIT_YES должен быть возвращен. Возвращаемое значение MAC_AUDIT_NO заставляет запись аудита быть подавленной. MAC_POLICY_DEFAULT возврата указывает, что политика хочет подчиниться существующему механизму предварительного выбора системы.
Когда политики возвращают различные предпочтения, Платформа решает что действие взять на основе следующей политики. Если какая-либо политика возвращает MAC_AUDIT_YES, то создайте запись аудита, еще если какая-либо политика возвращает MAC_AUDIT_NO, то подавите создания записи аудита, еще подчинитесь существующему механизму предварительного выбора системы.
Возвращаемое значение
Возвратите MAC_AUDIT_YES, чтобы вынудить контроль syscall, MAC_AUDIT_NO не вынудить контроль syscall, MAC_AUDIT_DEFAULT позволить контролировать механизмы, чтобы определить, контролируется ли syscall.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверьте, может ли BPF читать из сетевого интерфейса
Объявление
Objective C
typedef int mpo_bpfdesc_check_receive_t( struct bpf_d *bpf_d, struct label *bpflabel, struct ifnet *ifp, struct label *ifnetlabel );
Параметры
bpf_d
Предмет; дескриптор BPF
bpflabel
Метка политики для bpf_d
ifp
Объект; сетевой интерфейс
ifnetlabel
Метка политики для ifp
Определите, должна ли платформа MAC разрешить дейтаграммам от переданного сетевого интерфейса быть поставленными буферам переданного дескриптора BPF. Возвратитесь (0) для успеха или значения errno для отказа. Предложенный отказ: EACCES для несоответствий метки, EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите дескриптор BPF с меткой
Объявление
Objective C
typedef void mpo_bpfdesc_label_associate_t( kauth_cred_t cred, struct bpf_d *bpf_d, struct label *bpflabel );
Параметры
cred
Пользовательские учетные данные, создающие дескриптор BPF
bpf_d
Дескриптор BPF
bpflabel
Новая метка
Установите метку на недавно создаваемом дескрипторе BPF от переданных подчиненных учетных данных. Когда узел устройства BPF будет открыт процессом с переданными подчиненными учетными данными, этот вызов будет выполнен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку дескриптора BPF
Объявление
Objective C
typedef void mpo_bpfdesc_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку дескриптора BPF. Так как дескриптор BPF выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку дескриптора BPF
Объявление
Objective C
typedef void mpo_bpfdesc_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированного дескриптора BPF. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Укажите желание изменить метку процесса в исполнительное время
Объявление
Objective C
typedef int mpo_cred_check_label_update_execve_t( kauth_cred_t old, struct vnode *vp, struct vnode *scriptvp, struct label *vnodelabel, struct label *scriptvnodelabel, struct label *execlabel, struct proc *p, void *macpolicyattr, size_t macpolicyattrlen );
Параметры
old
Существующие подчиненные учетные данные
vp
Выполняемый файл
vnodelabel
Метка, соответствующая vp
scriptvnodelabel
Сценарий vnode метка
execlabel
Пространство пользователя обеспечило метку выполнения
proc
Объектный процесс
macpolicyattr
MAC специфичные для политики данные атрибута икры
macpolicyattrlen
Длина специфичной для политики икры приписывает данные
Возвращаемое значение
Ненулевой, если переход требуется, 0 иначе.
Обсуждение
Укажите, намеревается ли эта политика обновить метку недавно создаваемых учетных данных от существующих подчиненных (старых) учетных данных. Когда процесс выполняет переданный vnode, этот вызов происходит. Если политика возвратит успех из этой точки входа, то mpo_cred_label_update_execve точку входа позже вызовут с теми же параметрами. Доступ был уже проверен через mpo_vnode_check_exec точку входа, эта точка входа необходима для сохранения ограничений блокировки ядра во время реализации программы.
Предоставленный vnode и vnodelabel соответствуют файлу, фактически выполняемому; в случае, что файл интерпретируется (например, сценарий), метка исходного разового руководителем vnode была сохранена в scriptvnodelabel.
Заключительная метка, execlabel, соответствует метке, предоставленной приложением пространства пользователя с помощью mac_execve системного вызова.
Блокировка vnode сохранена во время этой работы. Никакие изменения не должны быть внесены в старую учетную структуру.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mac_execve
mpo_cred_label_update_execve_t
mpo_vnode_check_exec_t
-
Проверка управления доступом на перемаркировку процессов
Объявление
Objective C
typedef int mpo_cred_check_label_update_t( kauth_cred_t cred, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
newlabel
Новая метка для применения к пользовательским учетным данным
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, может ли предмет, идентифицированный учетными данными, повторно маркировать себя к предоставленной новой метке (newlabel). Когда mac_set_proc системный вызов вызывается, эту проверку управления доступом вызывают. Приложение пространства пользователя предоставит новое значение, значение будет усвоено и предоставлено в newlabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_label_update_t
mac_set_proc
-
Проверка управления доступом на видимость других предметов
Объявление
Objective C
typedef int mpo_cred_check_visible_t( kauth_cred_t u1, kauth_cred_t u2 );
Параметры
u1
Подчиненные учетные данные
u2
Объектные учетные данные
Определите, может ли предмет, идентифицированный учетными данными u1, «видеть» другие предметы с переданными подчиненными учетными данными u2. Этот вызов может быть выполнен во многих ситуациях, включая межпроцессное состояние sysctls используемый PS, и в procfs поисках.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для сокрытия видимости.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите учетные данные с новым процессом при ветвлении
Объявление
Objective C
typedef void mpo_cred_label_associate_fork_t( kauth_cred_t cred, proc_t proc );
Параметры
cred
учетные данные к наследованному новым процессом
proc
новый процесс
Позвольте процессу связывать учетные данные с новым процессом в ссылочных целях подсчета.Примечание: учетные данные могут быть разъединены способами кроме выхода - таким образом, эта стратегия испорчена - должен просто поймать метку, уничтожают обратный вызов.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте первый процесс
Объявление
Objective C
typedef void mpo_cred_label_associate_kernel_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные, которые будут маркированы
Создайте подчиненные учетные данные процесса 0, родителя всех процессов ядра BSD. Политики должны обновить метку в ранее инициализированной учетной структуре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте учетную метку
Объявление
Objective C
typedef void mpo_cred_label_associate_t( kauth_cred_t parent_cred, kauth_cred_t child_cred );
Параметры
parent_cred
Родительские учетные данные
child_cred
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте первый процесс
Объявление
Objective C
typedef void mpo_cred_label_associate_user_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные, которые будут маркированы
Создайте подчиненные учетные данные процесса 1, родитель всех пользовательских процессов BSD. Политики должны обновить метку в ранее инициализированной учетной структуре. Это - процесс 'init'.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте учетную метку
Объявление
Objective C
typedef void mpo_cred_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте пользовательскую учетную метку. Так как пользовательские учетные данные выходят из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите пользовательскую учетную метку для контроля
Объявление
Objective C
typedef int mpo_cred_label_externalize_audit_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на пользовательских учетных данных для включения в запись аудита. Воплощенная метка состоит из текстового представления содержания метки, которое будет добавлено к записи аудита как часть текстового маркера. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите пользовательскую учетную метку
Объявление
Objective C
typedef int mpo_cred_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на пользовательских учетных данных. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте пользовательскую учетную метку
Объявление
Objective C
typedef void mpo_cred_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированных пользовательских учетных данных. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте пользовательскую учетную метку
Объявление
Objective C
typedef int mpo_cred_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите пользовательскую учетную метку из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Учетные данные обновления в исполнительное время
Объявление
Objective C
typedef void mpo_cred_label_update_execve_t( kauth_cred_t old_cred, kauth_cred_t new_cred, struct proc *p, struct vnode *vp, struct vnode *scriptvp, struct label *vnodelabel, struct label *scriptvnodelabel, struct label *execlabel, void *macpolicyattr, size_t macpolicyattrlen, int *disjointp );
Параметры
old_cred
Существующие подчиненные учетные данные
new_cred
Новые подчиненные учетные данные, которые будут маркированы
p
Объектный процесс.
vp
Выполняемый файл
vnodelabel
Метка, соответствующая vp
scriptvnodelabel
Сценарий vnode метка
execlabel
Пространство пользователя обеспечило метку выполнения
macpolicyattr
MAC специфичные для политики данные атрибута икры.
macpolicyattrlen
Длина специфичной для политики икры приписывает данные.
Обсуждение
Обновите метку недавно создаваемых учетных данных (новых) от существующих подчиненных (старых) учетных данных. Этот вызов происходит, когда процесс выполняет переданный vnode, и один из загруженных модулей политики возвратил успех из mpo_cred_check_label_update_execve точки входа. Доступ был уже проверен через mpo_vnode_check_exec точку входа, эта точка входа только используется для обновления любого состояния политики.
Предоставленный vnode и vnodelabel соответствуют файлу, фактически выполняемому; в случае, что файл интерпретируется (например, сценарий), метка исходного разового руководителем vnode была сохранена в scriptvnodelabel.
Заключительная метка, execlabel, соответствует метке, предоставленной приложением пространства пользователя с помощью mac_execve системного вызова.
Если не-NULL, значение, на которое указывает disjointp, будет установлен в 0 указать, что старые и новые учетные данные не являются непересекающимися, или 1, чтобы указать, что они.
Блокировка vnode сохранена во время этой работы. Никакие изменения не должны быть внесены в старую учетную структуру.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mac_execve
mpo_cred_check_label_update_execve_t
mpo_vnode_check_exec_t
-
Обновите учетную метку
Объявление
Objective C
typedef void mpo_cred_label_update_t( kauth_cred_t cred, struct label *newlabel );
Параметры
cred
Существующие учетные данные
newlabel
Новая метка для применения к учетным данным
Обсуждение
Обновите метку на пользовательских учетных данных, с помощью предоставленной новой метки. Это вызывают в результате работы переметки процесса. Управление доступом было уже подтверждено mpo_cred_check_label_update.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_check_label_update_t
mac_set_proc
-
Создайте новое devfs устройство
Объявление
Objective C
typedef void mpo_devfs_label_associate_device_t( dev_t dev, struct devnode *de, struct label *label, const char *fullpath );
Параметры
dev
Главные и незначительные числа специального файла
de
«inode» нового файла устройств
label
Целевая метка
fullpath
Путь относительно монтирования (например,/dev) нового файла устройств
Эта точка входа маркирует новое devfs устройство. Метка будет, вероятно, основываться на пути к устройству или главных и незначительных числах. Политика должна сохранить надлежащую метку в 'метку'.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте новый devfs каталог
Объявление
Objective C
typedef void mpo_devfs_label_associate_directory_t( const char *dirname, int dirnamelen, struct devnode *de, struct label *label, const char *fullpath );
Параметры
dirname
Имя нового каталога
dirnamelen
Длина 'dirname'
de
«inode» нового каталога
label
Целевая метка
fullpath
Путь относительно монтирования (например,/dev) нового каталога
Эта точка входа маркирует новый devfs каталог. Метка будет, вероятно, основываться на пути нового каталога. Политика должна сохранить надлежащую метку в 'метку'. devfs корневой каталог маркируется таким образом.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку devfs
Объявление
Objective C
typedef void mpo_devfs_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Источник devfs метка
dest
Целевая метка devfs
Скопируйте информацию о метке от src до dest. devfs файловая система часто копирует (разделяет) существующие узлы устройства вместо того, чтобы создать новые.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку devfs
Объявление
Objective C
typedef void mpo_devfs_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте devfs имя точки входа. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку devfs
Объявление
Objective C
typedef void mpo_devfs_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированной devfs записи. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку devfs после перемаркировки ее vnode
Объявление
Objective C
typedef void mpo_devfs_label_update_t( struct mount *mp, struct devnode *de, struct label *delabel, struct vnode *vp, struct label *vnodelabel );
Параметры
mp
Точка монтирования Devfs
de
Затронутая devfs запись каталога
delabel
Метка devfs записи каталога
vp
Vnode связался с de
vnodelabel
Новая метка vnode
Обновите метку devfs, когда ее vnode будет вручную повторно маркирован, например с setfmac (1). Как правило, это просто скопирует метку vnode в метку devfs.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для изменения смещения дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_change_offset_t( kauth_cred_t cred, struct fileglob *fg, struct label *label );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
Определите, может ли предмет, идентифицированный учетными данными, изменить смещение файла, представленного fg.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для создания дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_create_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, может ли предмет, идентифицированный учетными данными, выделить новый дескриптор файла.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для дублирования дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_dup_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, int newfd );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
newfd
Новое число дескриптора файла
Определите, может ли предмет, идентифицированный учетными данными, копировать fileglob структуру, представленную fg и как число дескриптора файла newfd.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на fcntl
Объявление
Objective C
typedef int mpo_file_check_fcntl_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, int cmd, user_long_t arg );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
cmd
Работа управления, которая будет выполняться; см. fcntl (2)
arg
параметры fcnt; см. fcntl (2)
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу управления файлом, обозначенную cmd.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для получения смещения дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_get_offset_t( kauth_cred_t cred, struct fileglob *fg, struct label *label );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
Определите, может ли предмет, идентифицированный учетными данными, получить смещение файла, представленного fg.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на mac_get_fd
Объявление
Objective C
typedef int mpo_file_check_get_t( kauth_cred_t cred, struct fileglob *fg, char *elements, int len );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
elements
Буфер элемента
len
Длина буфера
Определите, нужно ли предмету, идентифицированному учетными данными, позволить получить воплощенную версию метки на объекте, обозначенном fd.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для наследования дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_inherit_t( kauth_cred_t cred, struct fileglob *fg, struct label *label );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
Определите, может ли предмет, идентифицированный учетными данными, наследовать fileglob структуру, представленную fg.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на файл ioctl
Объявление
Objective C
typedef int mpo_file_check_ioctl_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, unsigned int cmd );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
cmd
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на захват файла
Объявление
Objective C
typedef int mpo_file_check_lock_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, int op, struct flock *fl );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
op
Работа блокировки (F_GETLK, F_SETLK, F_UNLK)
fl
Структура скопления
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу блокировки, обозначенную op и fl на файле, представленном fg.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Понизьте mmap меры защиты
Объявление
Objective C
typedef void mpo_file_check_mmap_downgrade_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, int *prot );
Параметры
cred
Подчиненные учетные данные
fg
файл для отображения
label
Метка политики связалась с vp
prot
меры защиты mmap, которые будут понижены
Понизьте mmap меры защиты на основе подчиненных и меток объектов.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на отображение файла
Объявление
Objective C
typedef int mpo_file_check_mmap_t( kauth_cred_t cred, struct fileglob *fg, struct label *label, int prot, int flags, int *maxprot );
Параметры
cred
Подчиненные учетные данные
fg
fileglob представление файла для отображения
label
Метка политики связалась с vp
prot
меры защиты mmap; см. mmap (2)
flags
Тип отображенного объекта; см. mmap (2)
maxprot
Максимальные права
Определите, нужно ли предмету, идентифицированному учетными данными, позволить отобразить файл, представленный fg с мерами защиты, указанными в протестанте, maxprot поле содержит максимальные полномочия на новом отображении, комбинации VM_PROT_READ, VM_PROT_WRITE и VM_PROT_EXECUTE. Чтобы избежать переопределять предшествующие проверки управления доступом, политика должна только удалить флаги из maxprot.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом для получения дескриптора файла
Объявление
Objective C
typedef int mpo_file_check_receive_t( kauth_cred_t cred, struct fileglob *fg, struct label *label );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
Определите, может ли предмет, идентифицированный учетными данными, получить fileglob структуру, представленную fg.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на mac_set_fd
Объявление
Objective C
typedef int mpo_file_check_set_t( kauth_cred_t cred, struct fileglob *fg, char *elements, int len );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
elements
Буфер элементов
len
Длина буфера элементов
Определите, может ли предмет, идентифицированный учетными данными, выполнить mac_set_fd работу. mac_set_fd работа используется для соединения метки MAC с файлом.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку файла
Объявление
Objective C
typedef void mpo_file_label_associate_t( kauth_cred_t cred, struct fileglob *fg, struct label *label );
Параметры
cred
Подчиненные учетные данные
fg
Структура Fileglob
label
Метка политики для fg
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку файла
Объявление
Objective C
typedef void mpo_file_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку на дескрипторе файла. В этой точке входа модуль политики должен освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку файла
Объявление
Objective C
typedef void mpo_file_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перемаркировку сетевых интерфейсов
Объявление
Objective C
typedef int mpo_ifnet_check_label_update_t( kauth_cred_t cred, struct ifnet *ifp, struct label *ifnetlabel, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
ifp
повторно маркируемый сетевой интерфейс
ifnetlabel
Текущая метка сетевых интерфейсов
newlabel
Новая метка для применения к сетевым интерфейсам
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, может ли предмет, идентифицированный учетными данными, повторно маркировать сетевой интерфейс представленным ifp предоставленной новой метке (newlabel).
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_ifnet_label_update_t
-
Проверка управления доступом на перемаркировку сетевых интерфейсов
Объявление
Objective C
typedef int mpo_ifnet_check_transmit_t( struct ifnet *ifp, struct label *ifnetlabel, struct mbuf *m, struct label *mbuflabel, int family, int type );
Параметры
ifp
Сетевой интерфейс mbuf будет передан через
ifnetlabel
Метка сетевых интерфейсов
m
mbuf, который будет передан
mbuflabel
Метка mbuf, который будет передан
family
Семейство адресов, AF_*
type
Тип сокета, SOCK_ {STREAM, DGRAM, RAW}
Определите, может ли mbuf с меткой mbuflabel быть передан через сетевой интерфейс, представленный ifp, имеющим метку ifnetlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку сетевого интерфейса
Объявление
Objective C
typedef void mpo_ifnet_label_associate_t( struct ifnet *ifp, struct label *ifnetlabel );
Параметры
ifp
Сетевой интерфейс маркируется
ifnetlabel
Метка для сетевого интерфейса
Установите метку недавно создаваемого сетевого интерфейса, наиболее вероятное использование информации в предоставленной структуре сетевого интерфейса.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку ifnet
Объявление
Objective C
typedef void mpo_ifnet_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Источник ifnet метка
dest
Целевая метка ifnet
Скопируйте информацию о метке от src до dest.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку ifnet
Объявление
Objective C
typedef void mpo_ifnet_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку на метке ifnet. В этой точке входа модуль политики должен освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку ifnet
Объявление
Objective C
typedef int mpo_ifnet_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки в интерфейсе. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку ifnet
Объявление
Objective C
typedef void mpo_ifnet_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте интерфейсную метку
Объявление
Objective C
typedef int mpo_ifnet_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите интерфейсную метку из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Переработайте метку сетевого интерфейса
Объявление
Objective C
typedef void mpo_ifnet_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет переработана
Переработайте метку сетевого интерфейса. Дарвин кэширует структуру ifnet отдельного ifnets в «свободном пуле». Прежде чем ifnets возвращаются к «свободному пулу», политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку сетевого интерфейса
Объявление
Objective C
typedef void mpo_ifnet_label_update_t( kauth_cred_t cred, struct ifnet *ifp, struct label *ifnetlabel, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
ifp
Сетевой интерфейс, который будет повторно маркирован
ifnetlabel
Текущая метка сетевого интерфейса
newlabel
Новая метка для применения к сетевому интерфейсу
Обсуждение
Обновите метку на сетевом интерфейсе, с помощью предоставленной новой метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_ifnet_check_label_update_t
-
Проверка управления доступом на поставку пакета к сокету
Объявление
Objective C
typedef int mpo_inpcb_check_deliver_t( struct inpcb *inp, struct label *inplabel, struct mbuf *m, struct label *mbuflabel, int family, int type );
Параметры
inp
inpcb сокет связан с
inplabel
Метка inpcb
m
mbuf быть полученным
mbuflabel
Метка mbuf быть полученным
family
Семейство адресов, AF_*
type
Тип сокета, SOCK_ {STREAM, DGRAM, RAW}
Определите, может ли mbuf с меткой mbuflabel быть получен сокетом, связанным с inpcb, имеющим метку inplabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку inpcb
Объявление
Objective C
typedef void mpo_inpcb_label_associate_t( struct socket *so, struct label *solabel, struct inpcb *inp, struct label *inplabel );
Параметры
so
Сокет, содержащий inpcb, который будет маркирован
solabel
Метка сокета
inp
inpcb, который будет маркирован
inplabel
Метка для inpcb
Установите метку недавно создаваемого inpcb, наиболее вероятное использование информации в сокете и/или снабдите метку сокетом.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку inpcb
Объявление
Objective C
typedef void mpo_inpcb_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку на метке inpcb. В этой точке входа модуль политики должен освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку inpcb
Объявление
Objective C
typedef int mpo_inpcb_label_init_t( struct label *label, int flag );
Параметры
label
Новая метка для инициализации
flag
M_WAITOK или M_NOWAIT
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Переработайте метку inpcb
Объявление
Objective C
typedef void mpo_inpcb_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет переработана
Переработайте метку inpcb. Дарвин выделяет inpcb как часть структуры сокета в некоторых случаях. Для этого случая мы должны переработать, а не уничтожить inpcb, поскольку это будет снова использовано позже.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку inpcb от метки сокета
Объявление
Objective C
typedef void mpo_inpcb_label_update_t( struct socket *so, struct label *solabel, struct inpcb *inp, struct label *inplabel );
Параметры
so
Сокет, содержащий inpcb, который будет повторно маркирован
solabel
Новая метка сокета
inp
inpcb, который будет маркирован
inplabel
Метка для inpcb
Установите метку недавно создаваемого inpcb вследствие изменения в базовой метке сокета.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом оборудования устройства
Объявление
Objective C
typedef int mpo_iokit_check_device_t( char *devtype, struct mac_module_data *mdata );
Параметры
devtype
Тип устройства соединился
properties
XML-отформатированный список свойств
proplen
Длина списка свойств
Это - управление доступом к устройствам Платформы MAC, которое вызывает Набор I/O, когда новое устройство подключено к системе, чтобы определить, нужно ли доверять тому устройству. Список свойств, связанных с устройством, передается как СТРОКА ФОРМАТА XML. Подпрограмма должна исследовать эти свойства для определения степени доверия устройства. Возвращаемое значение EPERM вынуждает устройство требоваться драйвером специального устройства, который предотвратит его работу.
Возвращаемое значение
Возвратите EPERM, чтобы указать, что устройство недоверяемо и не должно быть позволено работать. Возвратите нуль, чтобы указать, что устройству доверяют и нужно позволить обычно работать.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку очереди повторной сборки IP
Объявление
Objective C
typedef void mpo_ipq_label_associate_t( struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel );
Параметры
fragment
Сначала полученный фрагмент IP
fragmentlabel
Метка политики для фрагмента
ipq
Очередь повторной сборки IP, которая будет маркирована
ipqlabel
Метка политики, чтобы быть заполненным в для ipq
Установите метку на недавно создаваемой очереди повторной сборки IP от mbuf заголовка первого полученного фрагмента.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Сравните mbuf начальную метку с меткой ipq
Объявление
Objective C
typedef int mpo_ipq_label_compare_t( struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel );
Параметры
fragment
Фрагмент дейтаграммы IP
fragmentlabel
Метка политики для фрагмента
ipq
Очередь повторной сборки фрагмента IP
ipqlabel
Метка политики для ipq
Сравните метку mbuf заголовка, содержащего дейтаграмму IP (фрагмент) фрагмент с меткой переданной очереди повторной сборки фрагмента IP (ipq). Возвратитесь (1) для успешного соответствия, или (0) ни для какого соответствия. Когда стек IP пытается найти существующую очередь повторной сборки фрагмента для недавно полученного фрагмента, этот вызов выполняется; если это перестало работать, новая очередь повторной сборки фрагмента можно инстанцировать для фрагмента. Политики могут использовать эту точку входа для предотвращения повторной сборки иначе соответствия фрагментов IP, если политика не разрешает им быть повторно собранными на основе метки или другой информации.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку очереди повторной сборки IP
Объявление
Objective C
typedef void mpo_ipq_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку на очереди фрагмента IP. В этой точке входа модуль политики должен освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку очереди повторной сборки IP
Объявление
Objective C
typedef int mpo_ipq_label_init_t( struct label *label, int flag );
Параметры
label
Новая метка для инициализации
flag
M_WAITOK или M_NOWAIT
Инициализируйте метку на недавно инстанцированной очереди повторной сборки фрагмента IP. Поле признака может быть одним из M_WAITOK и M_NOWAIT, и должно использоваться, чтобы избежать выполнять сон malloc (9) во время этого вызова инициализации. Выделение очереди повторной сборки фрагмента IP часто происходит в производительности чувствительные среды, и реализация должна стараться избежать спать или долгосрочные операции. Этой точке входа разрешают перестать работать получающийся в отказе выделить очередь повторной сборки фрагмента IP.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку на очереди повторной сборки фрагмента IP
Объявление
Objective C
typedef void mpo_ipq_label_update_t( struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel );
Параметры
fragment
Фрагмент IP
fragmentlabel
Метка политики для фрагмента
ipq
Очередь повторной сборки фрагмента IP
ipqlabel
Метка политики, которая будет обновлена для ipq
Обновите метку на очереди повторной сборки фрагмента IP (ipq) на основе принятия переданного фрагмента IP mbuf заголовок (фрагмент).
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перемаркировку Контекста Входа в систему
Объявление
Objective C
typedef int mpo_lctx_check_label_update_t( struct lctx *l, struct label *newlabel );
Параметры
l
Подчиненные учетные данные
newlabel
Новая метка для применения к Контексту Входа в систему
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, может ли предмет, идентифицированный учетными данными, повторно маркировать себя к предоставленной новой метке (newlabel). Когда mac_set_lctx/lcid системный вызов вызывается, эту проверку управления доступом вызывают. Приложение пространства пользователя предоставит новое значение, значение будет усвоено и предоставлено в newlabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_lctx_label_update_t
mac_set_lcid
mac_set_lctx
-
Уничтожьте метку Контекста Входа в систему
Объявление
Objective C
typedef void mpo_lctx_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку Контекста Входа в систему
Объявление
Objective C
typedef int mpo_lctx_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на Контексте Входа в систему. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку Контекста Входа в систему
Объявление
Objective C
typedef void mpo_lctx_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку Контекста Входа в систему
Объявление
Objective C
typedef int mpo_lctx_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите метку Контекста Входа в систему из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку Контекста Входа в систему
Объявление
Objective C
typedef void mpo_lctx_label_update_t( struct lctx *l, struct label *newlabel );
Параметры
l
newlabel
Новая метка для применения к Контексту Входа в систему
Обсуждение
Обновите метку на контексте входа в систему, с помощью предоставленной новой метки. Это вызывают в результате работы переметки контекста входа в систему. Управление доступом было уже подтверждено mpo_lctx_check_label_update.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_lctx_check_label_update_t
mac_set_lcid
mac_set_lctx
-
Процесс создал контекст входа в систему
Объявление
Objective C
typedef void mpo_lctx_notify_create_t( struct proc *p, struct lctx *l );
Параметры
p
Предмет
l
Контекст входа в систему
Когда процесс создает контекст входа в систему (через setlcid ()), этот entrypoint вызывают для уведомления политики, что процесс 'p' создал контекст входа в систему 'l'.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Процесс присоединился к контексту входа в систему
Объявление
Objective C
typedef void mpo_lctx_notify_join_t( struct proc *p, struct lctx *l );
Параметры
p
Предмет
l
Контекст входа в систему
То, когда процесс присоединяется к контексту входа в систему, любому через setlcid () или через ветвление (), этот entrypoint вызывают для уведомления политики, которые обрабатывают 'p', является теперь элементом контекста входа в систему 'l'.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Процесс оставил контекст входа в систему
Объявление
Objective C
typedef void mpo_lctx_notify_leave_t( struct proc *p, struct lctx *l );
Параметры
p
Предмет
l
Контекст входа в систему
Когда процесс оставляет контекст входа в систему, любого через setlcid () или в результате процесса, выходящего из этого entrypoint, вызывают для уведомления политики, что процесс 'p' больше не является элементом контекста входа в систему 'l'.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_bpfdesc_t( struct bpf_d *bpf_d, struct label *b_label, struct mbuf *m, struct label *m_label );
Параметры
bpf_d
Дескриптор BPF
b_label
Метка политики для bpf_d
m
Объект; mbuf
m_label
Метка политики для заполнения для m
Установите метку на mbuf заголовке недавно создаваемой дейтаграммы, сгенерированной с помощью переданного дескриптора BPF. Когда запись выполняется к устройству BPF, связанному с переданным дескриптором BPF, этот вызов выполняется.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_ifnet_t( struct ifnet *ifp, struct label *i_label, struct mbuf *m, struct label *m_label );
Параметры
ifp
Интерфейсный дескриптор
i_label
Существующая метка ifp
m
Объект; mbuf
m_label
Метка политики для заполнения для m
Маркируйте mbuf на основе интерфейса, из которого он был получен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_inpcb_t( struct inpcb *inp, struct label *i_label, struct mbuf *m, struct label *m_label );
Параметры
inp
структура inpcb
i_label
Существующая метка inp
m
Объект; mbuf
m_label
Метка политики для заполнения для m
Маркируйте mbuf на основе inpcb, из которого он был получен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите метку на недавно повторно собранной дейтаграмме IP
Объявление
Objective C
typedef void mpo_mbuf_label_associate_ipq_t( struct ipq *ipq, struct label *ipqlabel, struct mbuf *mbuf, struct label *mbuflabel );
Параметры
ipq
Очередь повторной сборки фрагмента IP
ipqlabel
Метка политики для ipq
mbuf
Дейтаграмма IP, которая будет маркирована
mbuflabel
Метка политики, чтобы быть заполненным в для mbuf
Установите метку на недавно повторно собранной дейтаграмме IP (mbuf) от очереди повторной сборки фрагмента IP (ipq), от которого это было сгенерировано.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_linklayer_t( struct ifnet *ifp, struct label *i_label, struct mbuf *m, struct label *m_label );
Параметры
ifp
Предмет; сетевой интерфейс
i_label
Существующая метка ifp
m
Объект; mbuf
m_label
Метка политики для заполнения для m
Установите метку на mbuf заголовке недавно создаваемой дейтаграммы, сгенерированной в целях ответа канального уровня для переданного интерфейса. Этот вызов может быть выполнен во многих ситуациях, включая для ARP или ответов ND6 в штабелях IPv6 и IPv4.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_multicast_encap_t( struct mbuf *oldmbuf, struct label *oldmbuflabel, struct ifnet *ifp, struct label *ifplabel, struct mbuf *newmbuf, struct label *newmbuflabel );
Параметры
oldmbuf
mbuf headerder для существующей дейтаграммы для существующей дейтаграммы
oldmbuflabel
Метка политики для oldmbuf
ifp
Сетевой интерфейс
ifplabel
Метка политики для ifp
newmbuf
заголовок mbuf, который будет маркирован для новой дейтаграммы
newmbuflabel
Метка политики для newmbuf
Установите метку на mbuf заголовке недавно создаваемой дейтаграммы, сгенерированной от существующей переданной дейтаграммы, когда это будет обработано переданным многоадресным интерфейсом инкапсуляции. Когда mbuf должен быть поставлен с помощью виртуального интерфейса, этот вызов выполняется.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_netlayer_t( struct mbuf *oldmbuf, struct label *oldmbuflabel, struct mbuf *newmbuf, struct label *newmbuflabel );
Параметры
oldmbuf
Полученная дейтаграмма
oldmbuflabel
Метка политики для oldmbuf
newmbuf
Недавно создаваемая дейтаграмма
newmbuflabel
Метка политики для newmbuf
Установите метку на mbuf заголовке недавно создаваемой дейтаграммы, сгенерированной стеком IP в ответ на существующую полученную дейтаграмму (oldmbuf). Этот вызов может быть выполнен во многих ситуациях, включая при ответе на дейтаграммы запроса ICMP.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_associate_socket_t( socket_t so, struct label *so_label, struct mbuf *m, struct label *m_label );
Параметры
so
Сокет для маркировки
so_label
Метка политики для сокета
m
Объект; mbuf
m_label
Метка политики для заполнения для m
mbuf структура используется для хранения сетевого трафика в пути. Когда приложение отправляет данные в сокет или канал, это обертывается в mbuf сначала. Эта функция устанавливает метку на недавно создаваемом mbuf заголовке на основе сокета, отправляющего данные. Содержание метки должно подойти для выполнения проверки прав доступа на стороне получения коммуникации.
Только маркированный MBUFs будет представлен политике через этот entrypoint.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Исходная метка
dest
Целевая метка
Скопируйте информацию о метке mbuf в src в dest.
Только вызванный, когда и источник и целевой mbufs имеют метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку mbuf
Объявление
Objective C
typedef void mpo_mbuf_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку mbuf. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку mbuf
Объявление
Objective C
typedef int mpo_mbuf_label_init_t( struct label *label, int flag );
Параметры
label
Новая метка для инициализации
flag
Возвращаемое значение
На успехе, 0, иначе, надлежащем errno возвращаемом значении.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на fsctl
Объявление
Objective C
typedef int mpo_mount_check_fsctl_t( kauth_cred_t cred, struct mount *mp, struct label *label, unsigned int cmd );
Параметры
cred
Подчиненные учетные данные
mp
Точка монтирования
label
Метка связалась с точкой монтирования
com
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на извлечение атрибутов файловой системы
Объявление
Objective C
typedef int mpo_mount_check_getattr_t( kauth_cred_t cred, struct mount *mp, struct label *mp_label, struct vfs_attr *vfa );
Параметры
cred
Подчиненные учетные данные
mp
Структура монтирования файловой системы
vfa
Атрибуты требуют
Эта точка входа определяет, может ли данная тема получить информацию о данной файловой системе. Эта проверка происходит во время statfs () syscalls, но также используется другими частями в ядре, такими как система аудитов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перемаркировку точки монтирования
Объявление
Objective C
typedef int mpo_mount_check_label_update_t( kauth_cred_t cred, struct mount *mp, struct label *mntlabel );
Параметры
cred
Подчиненные учетные данные
mp
Точка монтирования объектной файловой системы
mntlabel
Метка политики для fle системной точки монтирования
Определите, может ли предмет, идентифицированный учетными данными, повторно маркировать точку монтирования. Когда монтирование файловой системы обновляется, этот вызов выполняется.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на монтирование файловой системы
Объявление
Objective C
typedef int mpo_mount_check_mount_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel, struct componentname *cnp, const char *vfc_name );
Параметры
cred
Подчиненные учетные данные
vp
Vnode, который должен быть точкой монтирования
vlabel
Метка связалась с vnode
cnp
Имя компонента для vp
vfc_name
Имя типа файловой системы
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу монтирования на цели vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом, повторно монтирующая файловую систему
Объявление
Objective C
typedef int mpo_mount_check_remount_t( kauth_cred_t cred, struct mount *mp, struct label *mlabel );
Параметры
cred
Подчиненные учетные данные
mp
Точка монтирования
mlabel
Метка в настоящее время связывалась с точкой монтирования
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу перемонтирования на цели vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку атрибутов файловой системы
Объявление
Objective C
typedef int mpo_mount_check_setattr_t( kauth_cred_t cred, struct mount *mp, struct label *mp_label, struct vfs_attr *vfa );
Параметры
cred
Подчиненные учетные данные
mp
Структура монтирования файловой системы
vfa
Атрибуты требуют
Эта точка входа определяет, может ли данная тема установить информацию о данной файловой системе, например имя тома.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на статистику файловой системы
Объявление
Objective C
typedef int mpo_mount_check_stat_t( kauth_cred_t cred, struct mount *mp, struct label *mntlabel );
Параметры
cred
Подчиненные учетные данные
mp
Объектная файловая система монтируется
mntlabel
Метка политики для члена парламента
Определите, видит ли предмет, идентифицированный учетными данными, результаты statfs, выполняемого в файловой системе. Этот вызов может быть выполнен во многих ситуациях, включая во время вызовов statfs (2) и связал вызовы, а также определить, какие файловые системы исключить из списков файловых систем, такой как тогда, когда вызывается getfsstat (2).
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на размонтирование файловой системы
Объявление
Objective C
typedef int mpo_mount_check_umount_t( kauth_cred_t cred, struct mount *mp, struct label *mlabel );
Параметры
cred
Подчиненные учетные данные
mp
Точка монтирования
mlabel
Метка связалась с точкой монтирования
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу размонтирования на цели vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте монтируют метки
Объявление
Objective C
typedef void mpo_mount_label_associate_t( kauth_cred_t cred, struct mount *mp, struct label *mntlabel );
Параметры
cred
Подчиненные учетные данные
mp
Точка монтирования смонтированной файловой системы
mntlabel
Метка для соединения с новой точкой монтирования
Обсуждение
Заполните метки на точке монтирования, создаваемой предоставленными пользовательскими учетными данными. Когда файловые системы сначала смонтированы, этот вызов выполняется.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_mount_label_init_t
-
Уничтожьте монтируют метку
Объявление
Objective C
typedef void mpo_mount_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте файловую систему, монтируют метку. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку точки монтирования
Объявление
Objective C
typedef int mpo_mount_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки точки монтирования. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Политика воплощает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку точки монтирования
Объявление
Objective C
typedef void mpo_mount_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированный, монтируют структуру. Эта метка обычно используется для хранения метки по умолчанию в случае, что файловая система была смонтирована singlelabel. Так как некоторые файловые системы не поддерживают персистентные метки (расширенные атрибуты) или только для чтения (такие как CDROMS), часто необходимо сохранить метку по умолчанию отдельно от метки самой точки монтирования. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку точки монтирования
Объявление
Objective C
typedef int mpo_mount_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите метку файловой системы точки монтирования из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите метку на фрагменте дейтаграммы IPv4
Объявление
Objective C
typedef void mpo_netinet_fragment_t( struct mbuf *datagram, struct label *datagramlabel, struct mbuf *fragment, struct label *fragmentlabel );
Параметры
datagram
Фрагментируемая дейтаграмма
datagramlabel
Метка политики для дейтаграммы
fragment
Новый фрагмент
fragmentlabel
Метка политики для фрагмента
Вызванный, когда дейтаграмма IPv4 фрагментируется в несколько меньших дейтаграмм. Политики реализовывая mbuf метки будут обычно копировать метку от исходной дейтаграммы до нового фрагмента.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите метку на ответе ICMP
Объявление
Objective C
typedef void mpo_netinet_icmp_reply_t( struct mbuf *m, struct label *mlabel );
Параметры
m
mbuf, содержащий ответ ICMP
mlabel
Метка политики для m
Политика может хотеть обновить метку mbuf, относящегося к пакету ICMP, отправляемому в ответ на пакет IP. Это можно вызвать в ответ на недопустимый пакет или запрос ICMP.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите метку на ответе TCP
Объявление
Objective C
typedef void mpo_netinet_tcp_reply_t( struct mbuf *m, struct label *mlabel );
Параметры
m
mbuf, содержащий ответ TCP
mlabel
Метка политики для m
Требовавшийся исходящие пакеты TCP, не связанные с фактическим сокетом.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на канал ioctl
Объявление
Objective C
typedef int mpo_pipe_check_ioctl_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel, unsigned int cmd );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Метка на канале
cmd
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на канал kqfilter
Объявление
Objective C
typedef int mpo_pipe_check_kqfilter_t( kauth_cred_t cred, struct knote *kn, struct pipe *cpipe, struct label *pipelabel );
Параметры
cred
Подчиненные учетные данные
kn
Объект knote
cpipe
Объект, к которому получат доступ
pipelabel
Метка политики для канала
Определите, может ли предмет, идентифицированный учетными данными, получить knote на переданном канале.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на переметку канала
Объявление
Objective C
typedef int mpo_pipe_check_label_update_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Текущая метка на канале
newlabel
Новая метка, которая будет использоваться
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу переметки на переданном канале. cred объект содержит учетные данные предмета, выполняющего работу.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на канал читала
Объявление
Objective C
typedef int mpo_pipe_check_read_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Метка на канале
Определите, может ли предмет, идентифицированный учетными данными, выполнить операцию чтения на переданном канале. cred объект содержит учетные данные предмета, выполняющего работу.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на выбор канала
Объявление
Objective C
typedef int mpo_pipe_check_select_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel, int which );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Метка на канале
which
Работа, выбранная на: FREAD или FWRITE
Определите, может ли предмет, идентифицированный учетными данными, выполнить избранную работу на переданном канале. cred объект содержит учетные данные предмета, выполняющего работу.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на статистику канала
Объявление
Objective C
typedef int mpo_pipe_check_stat_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Метка на канале
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу статистики на переданном канале. cred объект содержит учетные данные предмета, выполняющего работу.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на запись канала
Объявление
Objective C
typedef int mpo_pipe_check_write_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, к которому получат доступ
pipelabel
Метка на канале
Определите, может ли предмет, идентифицированный учетными данными, выполнить операцию записи на переданном канале. cred объект содержит учетные данные предмета, выполняющего работу.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку канала
Объявление
Objective C
typedef void mpo_pipe_label_associate_t( kauth_cred_t cred, struct pipe *cpipe, struct label *pipelabel );
Параметры
cred
Подчиненные учетные данные
cpipe
объект, который будет маркирован
label
Метка для объекта канала
Создайте метку для объекта канала, создаваемого предоставленными пользовательскими учетными данными. Этот вызов выполняется, когда канал создается XXXPIPE (для одного или обеих сторон канала?).
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку канала
Объявление
Objective C
typedef void mpo_pipe_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Исходная метка канала
dest
Целевая метка канала
Скопируйте метку канала, связанную с src к dest. XXXPIPE Описывают, когда это используется: наиболее вероятно во время создания канала для копирования от rpipe до wpipe.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку канала
Объявление
Objective C
typedef void mpo_pipe_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку канала. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку канала
Объявление
Objective C
typedef int mpo_pipe_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на канале. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Политика воплощает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку канала
Объявление
Objective C
typedef void mpo_pipe_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте хранение метки для использования с недавно инстанцированным объектом канала. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку канала
Объявление
Objective C
typedef int mpo_pipe_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите метку канала из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку канала
Объявление
Objective C
typedef void mpo_pipe_label_update_t( kauth_cred_t cred, struct pipe *cpipe, struct label *oldlabel, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
cpipe
Объект, который будет маркирован
oldlabel
Существующая метка канала
newlabel
Новая метка для замены существующей метки
Обсуждение
Предмет, идентифицированный учетными данными, ранее запросил и был разрешен повторно маркировать канал; эта точка входа позволяет политикам выполнить фактическую работу переметки. Политики должны обновить oldlabel использование метки, сохраненной в newlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_pipe_check_label_update_t
-
Политика разгружает событие
Объявление
Objective C
typedef void mpo_policy_destroy_t( struct mac_policy_conf *mpc );
Параметры
mpc
Конфигурация политики MAC
Это - политика Платформы MAC, разгружают событие. Эту точку входа только вызовут, если конфигурация политики модуля позволит, разгружаются (если MPC_LOADTIME_FLAG_UNLOADOK установлен). Большая часть политики безопасности не захочет быть разгруженной; они должны установить свои флаги, чтобы препятствовать тому, чтобы была вызвана эта точка входа.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
MPC_LOADTIME_FLAG_UNLOADOK
-
Событие инициализации политики
Объявление
Objective C
typedef void mpo_policy_init_t( struct mac_policy_conf *mpc );
Параметры
mpc
Конфигурация политики MAC
Обсуждение
Это - событие инициализации политики Платформы MAC. Когда модуль политики сначала регистрируется в Платформе MAC, эту точку входа вызывают во время mac_policy_register. Это часто делается очень рано в процессе начальной загрузки после ядра, подсистема Маха была инициализирована, но до инициализируемой подсистемы BSD. Так как службы BSD ядра еще не доступны, возможно, что некоторая инициализация должна произойти позже, возможно в mpo_policy_initbsd_t точке входа политики, такой как регистрация системных средств управления BSD (sysctls). Модули политики, загруженные во время начальной загрузки, будут зарегистрированы и инициализированы, прежде чем маркированный Мах возражает, создаются.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mac_policy_register
mpo_policy_initbsd_t
-
Политика событие инициализации BSD
Объявление
Objective C
typedef void mpo_policy_initbsd_t( struct mac_policy_conf *mpc );
Параметры
mpc
Конфигурация политики MAC
Обсуждение
Эту точку входа вызывают после ядра была инициализирована подсистема BSD. Этой точкой модуль должен уже быть загружен, зарегистрирован и инициализирован. Так как модули политики инициализируются, прежде чем службы BSD ядра доступны, эта вторая фаза инициализации необходима. В этой точке службы BSD (управление памятью, примитивы синхронизации, vfs, и т.д.) доступны, но еще не был создан первый процесс. Связанные с Махом объекты и задачи будут уже полностью инициализированы и могут использоваться - политики, требующие, чтобы повсеместная маркировка могла также хотеть реализовать mpo_policy_init_t.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_policy_init_t
-
Служба распространения знаний политики
Объявление
Objective C
typedef int mpo_policy_syscall_t( struct proc *p, int call, user_addr_t arg );
Параметры
p
Обработка вызовов
call
Специфичное для политики syscall число
arg
Указатель на syscall параметры
Эта точка входа обеспечивает мультиплексированный политикой системный вызов так, чтобы политики могли предоставить дополнительные услуги пользовательским процессам, не регистрируя определенные системные вызовы. Имя политики, предоставленное во время регистрации, используется для демультиплексирования вызовов от пространства пользователя, и параметры будут переданы этой точке входа. При реализации новых служб модули безопасности, несомненно, должны будут вызвать надлежащие проверки управления доступом от платформы MAC по мере необходимости. Например, если политика реализует увеличенную сигнальную функциональность, она должна вызвать необходимые сигнальные проверки управления доступом для вызова платформы MAC и других зарегистрированных политик.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на копирование отправить права на другую задачу
Объявление
Objective C
typedef int mpo_port_check_copy_send_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на копирование отправляет права на порт от указанной задачи. Дополнительная точка входа, mpo_port_check_hold_send, обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_copy_send вызывают как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение получить права
Объявление
Objective C
typedef int mpo_port_check_hold_receive_t( struct label *task, struct label *port );
Параметры
task
Метка задачи получения
port
Метка затронутого порта
Проверка управления доступом на получение задачи получает права на порт. Обычно, это права порта, полученные с вызовом к mach_port_allocate. Когда сообщения с правами порта получены, эту точку входа вызывают как часть группы вызовов политики. Все эти проверки управления доступом должны успешно выполниться для получения сообщения.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение отправления один раз права
Объявление
Objective C
typedef int mpo_port_check_hold_send_once_t( struct label *task, struct label *port );
Параметры
task
Метка задачи получения
port
Метка затронутого порта
Проверка управления доступом на получение задачи отправляет один раз права на порт. Обычно, это права порта, которые были частью сообщения, отправленного другой задачей пространства пользователя. когда сообщения с правами порта получены, port_check_hold_send_once вызывают как часть группы вызовов политики. Все эти проверки управления доступом должны успешно выполниться для получения сообщения.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение отправить права
Объявление
Objective C
typedef int mpo_port_check_hold_send_t( struct label *task, struct label *port );
Параметры
task
Метка задачи получения
port
Метка затронутого порта
Проверка управления доступом на получение задачи отправляет права на порт. Обычно, это права порта, которые были частью сообщения, отправленного другой задачей пространства пользователя. когда сообщения с правами порта получены, port_check_hold_send вызывают как часть группы вызовов политики. Все эти проверки управления доступом должны успешно выполниться для получения сообщения.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перемаркировку портов
Объявление
Objective C
typedef int mpo_port_check_label_update_t( struct label *task, struct label *oldlabel, struct label *newlabel );
Параметры
task
Метка задачи предмета
oldlabel
Исходная метка порта
newlabel
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на создание отправления один раз прямо от получить права
Объявление
Objective C
typedef int mpo_port_check_make_send_once_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на получение отправляет, как только права от получают права. Новые отправляют, как только право может быть предназначено для задачи вызова или различной задачи. В любом случае mpo_port_check_hold_send_once точка входа обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_make_send_once можно вызвать как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на создание отправить права от получить права
Объявление
Objective C
typedef int mpo_port_check_make_send_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на получение отправляет, права от получают права. Новые отправляют, право может быть предназначено для задачи вызова или различной задачи. В любом случае mpo_port_check_hold_send точка входа обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_make_send можно вызвать как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Вычислите проверку управления доступом на Маха основанная на сообщении служба
Объявление
Objective C
typedef int mpo_port_check_method_t( struct proc *proc, struct label *task, struct label *port, int msgid );
Параметры
proc
Структура процесса отправителя (может быть NULL),
task
Метка задачи отправителя
port
Метка целевого порта
msgid
Идентификатор сообщения
Вычисление управления доступом для основанных на сообщении служб. Эта точка входа вычисляет разрешение к службе, которую требует указанный порт и идентификатор сообщения, например единственная подпрограмма сервера MiG, и не связана с проверкой прав доступа на отправку сообщений к портам (но та проверка должна успешно выполниться для сообщения, которое будет отправлено месту назначения). Результат этого вычисления доступа сохранен в поле метки конца сообщения msgh_ad (только если требуемый получателем); это фактически не запрещает сообщению то, чтобы быть отправленным или полученный.
Возвращаемое значение
0 для доступа, предоставленного, ненулевого для доступа запрещен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на передачу получить права
Объявление
Objective C
typedef int mpo_port_check_move_receive_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на передачу получить права на порт из указанной задачи. Дополнительная точка входа, mpo_port_check_hold_receive, обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_move_receive вызывают как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на передачу отправления один раз права
Объявление
Objective C
typedef int mpo_port_check_move_send_once_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на передачу отправления один раз прямо от одной задачи до задачи, слушающей указанный порт. Дополнительная точка входа, mpo_port_check_hold_send_once, обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_move_send_once вызывают как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на передачу отправить права
Объявление
Objective C
typedef int mpo_port_check_move_send_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Метка затронутого порта
Проверка управления доступом на передачу отправить права от одной задачи до задачи, слушающей указанный порт. Дополнительная точка входа, mpo_port_check_hold_send, обрабатывает задачу получения. когда сообщения с правами порта отправляются, port_check_move_send вызывают как часть группы вызовов политики. Все проверки управления доступом, сделанные для определенного сообщения, должны быть успешными для сообщения, которое будет отправлено.
Метка задачи и порт заблокированы. Сон разрешен.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение сообщений Маха
Объявление
Objective C
typedef int mpo_port_check_receive_t( struct label *task, struct label *sender );
Параметры
task
Метка задачи получения
sender
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на отправку сообщений Маха
Объявление
Objective C
typedef int mpo_port_check_send_t( struct label *task, struct label *port );
Параметры
task
Метка задачи отправителя
port
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Универсальная проверка управления доступом
Объявление
Objective C
typedef int mpo_port_check_service_t( struct label *subj, struct label *obj, const char *serv, const char *perm );
Параметры
subj
Предоставленная вызывающей стороной подчиненная метка
obj
Предоставленная вызывающей стороной метка объектов
serv
Класс обслуживания или имя класса объекта
perm
Разрешение или метод, в указанной службе
Эта функция обеспечивает общий путь к пользовательскому процессу для запросов решения управления произвольной выборкой от политики безопасности системы. В настоящее время нет никаких стандартов для формата имен разрешения и службы. Метки могут быть или cred или метками порта; политика должна принять также. Интерфейсы пространства пользователя к этой точке входа позволяют строки метки или маркируют дескрипторы (порты), которые будут предоставлены.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому порту Маха, создаваемому ядром
Объявление
Objective C
typedef void mpo_port_label_associate_kernel_t( struct label *portlabel, int isreply );
Параметры
portlabel
Метка для нового порта
isreply
Истина, если порт для ответного сообщения от ядра
Присвойте метку новому порту, создаваемому ядром. Если порт используется для ответа на сообщение, isreply равняется 1 (0 иначе). Порт заблокирован.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому порту Маха
Объявление
Objective C
typedef void mpo_port_label_associate_t( struct label *it, struct label *st, struct label *portlabel );
Параметры
it
Метка задачи эмитента
st
Метка задачи цели
portlabel
Метка для нового порта
Присвойте метку новому порту. Политика может базировать эту метку на метке задачи вызова, а также метке целевой задачи. Целевой задачей является та, получающая первое право для этого порта. И метки задачи и порт заблокированы.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Метка запроса для нового (пространство пользователя) объект
Объявление
Objective C
typedef int mpo_port_label_compute_t( struct label *subj, struct label *obj, const char *serv, struct label *out );
Параметры
subj
Подчиненная метка
obj
Родительская или существующая метка объектов
serv
Имя службы
out
Вычисленная метка
Спросите загруженные политики вычислить метку на основе двух входных меток и имени службы. В настоящее время нет никакого стандарта для имени службы, или даже что входные метки представляют (Подчиненный и родительский объект только предложение). Если успешный, вычисленная метка сохранена в. Все метки должны быть портом (или задача) метки. Интерфейсы пространства пользователя к этой точке входа позволяют (порты) дескрипторов метки быть предоставленными.
Возвращаемое значение
0 на успехе или errno оценивают за отказ.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку порта Маха
Объявление
Objective C
typedef void mpo_port_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Метка исходного порта
dest
Метка целевого порта
Скопируйте информацию о метке порта Маха от src до dest. Это используется для копирования пользовательских-suplied меток в существующий порт.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку порта Маха
Объявление
Objective C
typedef void mpo_port_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку порта Маха. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку порта Маха
Объявление
Objective C
typedef void mpo_port_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированного порта Маха. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку порта задачи Маха
Объявление
Objective C
typedef void mpo_port_label_update_cred_t( struct label *cred, struct label *task );
Параметры
cred
Пользовательские учетные данные маркируют, чтобы использоваться в качестве источника
task
Метка порта Маха, которая будет использоваться в качестве места назначения
Обсуждение
Обновите метку на порту задачи Маха, с помощью предоставленной пользовательской учетной метки. Когда mac_cred_label_update_execve или mac_cred_label_update работа заставляют метку на пользовательских учетных данных изменяться, метка порта задачи Маха также должна быть обновлена для отражения изменения. Обе метки уже допустимы (инициализированный и создаваемый).
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_label_update_t
mpo_cred_label_update_execve_t
-
Присвойте метку порту Маха, подключенному к объекту ядра
Объявление
Objective C
typedef void mpo_port_label_update_kobject_t( struct label *portlabel, int kotype );
Параметры
portlabel
Метка для порта
kotype
Тип объекта ядра
Маркируйте порт ядра на основе типа объекта позади него. kotype параметр является одной из констант IKOT в <kern/ipc_kobject.h>. Порт уже имеет допустимую метку или от mpo_port_label_associate_kernel, или от потому что это - порт задачи и получило метку из меток задачи и процесса. Порт заблокирован.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на семафор POSIX создает
Объявление
Objective C
typedef int mpo_posixsem_check_create_t( kauth_cred_t cred, const char *name );
Параметры
cred
Подчиненные учетные данные
name
Имя строки семафора
Определите, может ли предмет, идентифицированный учетными данными, создать семафор POSIX, указанный по имени.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на открытый семафор POSIX
Объявление
Objective C
typedef int mpo_posixsem_check_open_t( kauth_cred_t cred, struct pseminfo *ps, struct label *semlabel );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на семафорную информационную структуру
semlabel
Метка связалась с семафором
Определите, может ли предмет, идентифицированный учетными данными, открыть именованный семафор POSIX с меткой semlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сообщение семафора POSIX
Объявление
Objective C
typedef int mpo_posixsem_check_post_t( kauth_cred_t cred, struct pseminfo *ps, struct label *semlabel );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на семафорную информационную структуру
semlabel
Метка связалась с семафором
Определите, может ли предмет, идентифицированный учетными данными, разблокировать именованный семафор POSIX с меткой semlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на семафор POSIX расцепляет
Объявление
Objective C
typedef int mpo_posixsem_check_unlink_t( kauth_cred_t cred, struct pseminfo *ps, struct label *semlabel, const char *name );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на семафорную информационную структуру
semlabel
Метка связалась с семафором
name
Имя строки семафора
Определите, может ли предмет, идентифицированный учетными данными, удалить именованный семафор POSIX с меткой semlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на POSIX семафорное ожидание
Объявление
Objective C
typedef int mpo_posixsem_check_wait_t( kauth_cred_t cred, struct pseminfo *ps, struct label *semlabel );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на семафорную информационную структуру
semlabel
Метка связалась с семафором
Определите, может ли предмет, идентифицированный учетными данными, заблокировать именованный семафор POSIX с меткой semlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку семафора POSIX
Объявление
Objective C
typedef void mpo_posixsem_label_associate_t( kauth_cred_t cred, struct pseminfo *ps, struct label *semlabel, const char *name );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на семафорную информационную структуру
semlabel
Метка для соединения с новым семафором
name
Имя строки семафора
Маркируйте новый семафор POSIX. Метка была ранее инициализирована и связана с семафором. В это время надлежащее начальное значение метки должно быть присвоено объекту и сохранено в semalabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку семафора POSIX
Объявление
Objective C
typedef void mpo_posixsem_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку семафора POSIX. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку семафора POSIX
Объявление
Objective C
typedef void mpo_posixsem_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированного семафора POSIX. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на область общей памяти POSIX создает
Объявление
Objective C
typedef int mpo_posixshm_check_create_t( kauth_cred_t cred, const char *name );
Параметры
cred
Подчиненные учетные данные
name
Имя строки области общей памяти
Определите, может ли предмет, идентифицированный учетными данными, создать область общей памяти POSIX, на которую ссылаются по имени.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на отображение общей памяти POSIX
Объявление
Objective C
typedef int mpo_posixshm_check_mmap_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel, int prot, int flags );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка связалась с областью общей памяти
prot
меры защиты mmap; см. mmap (2)
flags
флаги shmat; см. shmat (2)
Определите, может ли предмет, идентифицированный учетными данными, отобразить сегмент общей памяти POSIX, связанный с shmlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на открытую область общей памяти POSIX
Объявление
Objective C
typedef int mpo_posixshm_check_open_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel, int fflags );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка связалась с областью общей памяти
fflags
shm_open (2) открытые флаги ('fflags' закодированный)
Определите, может ли предмет, идентифицированный учетными данными, открыть область общей памяти POSIX.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на статистику общей памяти POSIX
Объявление
Objective C
typedef int mpo_posixshm_check_stat_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка связалась с областью общей памяти
Определите, может ли предмет, идентифицированный учетными данными, получить состояние для сегмента общей памяти POSIX, связанного с shmlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на усеченную общую память POSIX
Объявление
Objective C
typedef int mpo_posixshm_check_truncate_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel, off_t len );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка связалась с областью общей памяти
len
Длина, чтобы усечь или расширить сегмент общей памяти
Определите, может ли предмет, идентифицированный учетными данными, усечь или расширить (до len) сегмент общей памяти POSIX, связанный с shmlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на общую память POSIX расцепляет
Объявление
Objective C
typedef int mpo_posixshm_check_unlink_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel, const char *name );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка связалась с областью общей памяти
name
Имя строки области общей памяти
Определите, может ли предмет, идентифицированный учетными данными, удалить сегмент общей памяти POSIX, связанный с shmlabel.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку области общей памяти POSIX
Объявление
Objective C
typedef void mpo_posixshm_label_associate_t( kauth_cred_t cred, struct pshminfo *ps, struct label *shmlabel, const char *name );
Параметры
cred
Подчиненные учетные данные
ps
Указатель на информационную структуру общей памяти
shmlabel
Метка для соединения с новой областью общей памяти
name
Имя строки области общей памяти
Маркируйте новую область общей памяти POSIX. Метка была ранее инициализирована и связана с областью общей памяти. В это время надлежащее начальное значение метки должно быть присвоено объекту и сохранено в shmlabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку общей памяти POSIX
Объявление
Objective C
typedef void mpo_posixshm_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку области общей памяти POSIX. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку области Общей памяти POSIX
Объявление
Objective C
typedef void mpo_posixshm_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированной области Общей памяти POSIX. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на процесс отладки
Объявление
Objective C
typedef int mpo_proc_check_debug_t( kauth_cred_t cred, struct proc *proc );
Параметры
cred
Подчиненные учетные данные
proc
Объектный процесс
Определите, может ли предмет, идентифицированный учетными данными, отладить переданный процесс. Этот вызов может быть выполнен во многих ситуациях, включая использование ptrace (2) и ktrace (2) APIs, а также для некоторых типов procfs операций.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для сокрытия видимости цели.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Управление доступом по ветвлению
Объявление
Objective C
typedef int mpo_proc_check_fork_t( kauth_cred_t cred, struct proc *proc );
Параметры
cred
Подчиненные учетные данные
proc
Подчиненный процесс, пытающийся разветвляться
Определите, позволяют ли идентифицированному предмету разветвиться.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение имени задачи процесса
Объявление
Objective C
typedef int mpo_proc_check_get_task_name_t( kauth_cred_t cred, struct proc *p );
Параметры
cred
Подчиненные учетные данные
proc
Объектный процесс
Определите, может ли предмет, идентифицированный учетными данными, получить порт имени задачи переданного процесса. Этот вызов используется task_name_for_pid (2) API.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для сокрытия видимости цели.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение порта задачи процесса
Объявление
Objective C
typedef int mpo_proc_check_get_task_t( kauth_cred_t cred, struct proc *p );
Параметры
cred
Подчиненные учетные данные
proc
Объектный процесс
Определите, может ли предмет, идентифицированный учетными данными, получить порт управления задачи переданного процесса. Этот вызов используется task_for_pid (2) API.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для сокрытия видимости цели.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение информации об аудите
Объявление
Objective C
typedef int mpo_proc_check_getaudit_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, может ли предмет, идентифицированный учетными данными, получить информацию об аудите, такую как контрольный идентификатор пользователя, маска предварительного выбора, терминал ID и контрольный сеанс ID, с помощью getaudit () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение контрольного идентификатора пользователя
Объявление
Objective C
typedef int mpo_proc_check_getauid_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, может ли предмет, идентифицированный учетными данными, получить пользовательские идентификационные данные, используемые системой контроля, с помощью getauid () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение Контекста Входа в систему ID
Объявление
Objective C
typedef int mpo_proc_check_getlcid_t( struct proc *p0, struct proc *p, pid_t pid );
Параметры
p0
Обработка вызовов
p
Произведенный процесс
pid
параметр PID syscall
Определите, разрешен ли getlcid (2) системный вызов.
Информация, возвращенная этим системным вызовом, подобна этому, возвратился через списки процесса и т.д.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку защит памяти
Объявление
Objective C
typedef int mpo_proc_check_mprotect_t( kauth_cred_t cred, struct proc *proc, user_addr_t addr, user_size_t size, int prot );
Параметры
cred
Подчиненные учетные данные
proc
Пользовательский процесс, запрашивающий изменение
addr
Начальный адрес диапазона памяти
size
Адрес длины диапазона памяти
prot
Защиты памяти, см. mmap (2)
Определите, нужно ли предмету, идентифицированному учетными данными, позволить установить указанные защиты памяти на с отображенной памятью в процессе proc.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на изменение параметров планирования
Объявление
Objective C
typedef int mpo_proc_check_sched_t( kauth_cred_t cred, struct proc *proc );
Параметры
cred
Подчиненные учетные данные
proc
Объектный процесс
Определите, может ли предмет, идентифицированный учетными данными, изменить параметры планирования переданного процесса.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для ограничения видимости.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку информации об аудите
Объявление
Objective C
typedef int mpo_proc_check_setaudit_t( kauth_cred_t cred, struct auditinfo_addr *ai );
Параметры
cred
Подчиненные учетные данные
ai
Информация об аудите
Определите, может ли предмет, идентифицированный учетными данными, установить информацию об аудите такой как маска предварительного выбора, терминал ID и контрольный сеанс ID, с помощью setaudit () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку контрольного идентификатора пользователя
Объявление
Objective C
typedef int mpo_proc_check_setauid_t( kauth_cred_t cred, uid_t auid );
Параметры
cred
Подчиненные учетные данные
auid
Контрольный идентификатор пользователя
Определите, может ли предмет, идентифицированный учетными данными, установить пользовательские идентификационные данные, используемые системой контроля, с помощью setauid () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку Контекста Входа в систему
Объявление
Objective C
typedef int mpo_proc_check_setlcid_t( struct proc *p0, struct proc *p, pid_t pid, pid_t lcid );
Параметры
p0
Обработка вызовов
p
Произведенный процесс
pid
параметр PID syscall
lcid
параметр LCID syscall
Определите, разрешен ли setlcid (2) системный вызов.
См. xnu/bsd/kern/kern_prot.c:setlcid () реализация, например, декодирования syscall параметры для определения действия, желаемого вызывающей стороной.
Пять отличных действий возможны: CREATE JOIN LEAVE УСЫНОВЛЯЕТ СИРОТУ
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на поставку сигнала
Объявление
Objective C
typedef int mpo_proc_check_signal_t( kauth_cred_t cred, struct proc *proc, int signum );
Параметры
cred
Подчиненные учетные данные
proc
Объектный процесс
signum
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки, EPERM из-за отсутствия полномочия или ESRCH для ограничения видимости.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на ожидание
Объявление
Objective C
typedef int mpo_proc_check_wait_t( kauth_cred_t cred, struct proc *proc );
Параметры
cred
Подчиненные учетные данные
proc
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку процесса
Объявление
Objective C
typedef void mpo_proc_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку процесса. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку процесса
Объявление
Objective C
typedef void mpo_proc_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Обсуждение
Инициализируйте метку для недавно инстанцированной структуры процесса BSD. Обычно, политика безопасности сохранит метку процесса в пользовательских учетных данных, а не здесь в структуре процесса. Однако существуют некоторые плавающие политики метки, которые, возможно, должны временно сохранить метку в структуре процесса, пока не безопасно обновить пользовательскую учетную метку. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_label_init_t
-
Проверка управления доступом на сокет принимает
Объявление
Objective C
typedef int mpo_socket_check_accept_t( kauth_cred_t cred, socket_t so, struct label *socklabel );
Параметры
cred
Подчиненные учетные данные
socket
Объектный сокет
socklabel
Метка политики для сокета
Определите, может ли предмет, идентифицированный учетными данными, принять () новое соединение на сокете от узла, указанного addr.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на незаконченный сокет принимает
Объявление
Objective C
typedef int mpo_socket_check_accepted_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockaddr *addr );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
addr
Адрес сокета слушания (прибывающий скоро)
Определите, может ли предмет, идентифицированный учетными данными, принять () незаконченное соединение на сокете от узла, указанного addr.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет связывает
Объявление
Objective C
typedef int mpo_socket_check_bind_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockaddr *addr );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
addr
Имя для присвоения к сокету
Определите, может ли предмет, идентифицированный учетными данными, связать () имя (addr) к сокету.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на подключение сокета
Объявление
Objective C
typedef int mpo_socket_check_connect_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockaddr *addr );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
addr
Имя для присвоения к сокету
Определите, может ли предмет, идентифицированный учетными данными, подключить () переданный сокет к удаленному узлу, указанному addr.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет () системный вызов.
Объявление
Objective C
typedef int mpo_socket_check_create_t( kauth_cred_t cred, int domain, int type, int protocol );
Параметры
cred
Подчиненные учетные данные
domain
коммуникационный домен
type
тип сокета
protocol
сокетный протокол
Определите, может ли предмет, идентифицированный учетными данными, сделать сокет () вызовом.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на поставку данных receieve очереди пользователя
Объявление
Objective C
typedef int mpo_socket_check_deliver_t( socket_t so, struct label *so_label, struct mbuf *m, struct label *m_label );
Параметры
so
Данные сокета поставляются
so_label
Метка так
m
mbuf, данные которого будут депонированы в получить очередь
m_label
Метка отправителя данных.
Сокет имеет очередь для получения входящих данных. Когда пакет поступает в провод, он в конечном счете депонирован в эту очередь, которую истощает владелец сокета, когда они читают из дескриптора файла сокета.
Эта функция определяет, может ли сокет получить данные от отправителя, указанного m_label.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение опций сокета
Объявление
Objective C
typedef int mpo_socket_check_getsockopt_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockopt *sopt );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для так
sopt
Опции добраться
Определите, может ли предмет, идентифицированный учетными данными, выполнить getsockopt системный вызов на данном сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет kqfilter
Объявление
Objective C
typedef int mpo_socket_check_kqfilter_t( kauth_cred_t cred, struct knote *kn, socket_t so, struct label *socklabel );
Параметры
cred
Подчиненные учетные данные
kn
Объект knote
so
Объектный сокет
socklabel
Метка политики для сокета
Определите, может ли предмет, идентифицированный учетными данными, получить knote на переданном сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на переметку сокета
Объявление
Objective C
typedef int mpo_socket_check_label_update_t( kauth_cred_t cred, socket_t so, struct label *so_label, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
so_label
Текущая метка так
newlabel
Метка, которая будет присвоена так
Определите, может ли предмет, идентифицированный учетными данными, изменить метку на сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет слушает
Объявление
Objective C
typedef int mpo_socket_check_listen_t( kauth_cred_t cred, socket_t so, struct label *socklabel );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
Определите, может ли предмет, идентифицированный учетными данными, послушать () на переданном сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет получает
Объявление
Objective C
typedef int mpo_socket_check_receive_t( kauth_cred_t cred, socket_t so, struct label *socklabel );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
Определите, может ли предмет, идентифицированный учетными данными, получить данные от сокета.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет получает
Объявление
Objective C
typedef int mpo_socket_check_received_t( kauth_cred_t cred, struct socket *sock, struct label *socklabel, struct sockaddr *saddr );
Параметры
cred
Подчиненные учетные данные
socket
Объектный сокет
socklabel
Метка политики для сокета
addr
Имя удаленного сокета
Определите, может ли предмет, идентифицированный учетными данными, получить данные от удаленного узла, указанного addr.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на выбор сокета
Объявление
Objective C
typedef int mpo_socket_check_select_t( kauth_cred_t cred, socket_t so, struct label *socklabel, int which );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
which
Работа, выбранная на: FREAD или FWRITE
Определите, может ли предмет, идентифицированный учетными данными, использовать сокет в вызове для выбора ().
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на сокет отправляет
Объявление
Objective C
typedef int mpo_socket_check_send_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockaddr *addr );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для сокета
addr
Адрес, отправляемый в
Определите, может ли предмет, идентифицированный учетными данными, отправить данные в сокет.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку опций сокета
Объявление
Objective C
typedef int mpo_socket_check_setsockopt_t( kauth_cred_t cred, socket_t so, struct label *socklabel, struct sockopt *sopt );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для так
sopt
Устанавливаемые опции
Определите, может ли предмет, идентифицированный учетными данными, выполнить setsockopt системный вызов на данном сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение состояния сокета
Объявление
Objective C
typedef int mpo_socket_check_stat_t( kauth_cred_t cred, socket_t so, struct label *socklabel );
Параметры
cred
Подчиненные учетные данные
so
Объектный сокет
socklabel
Метка политики для так
Определите, может ли предмет, идентифицированный учетными данными, выполнить статистику () системный вызов на данном сокете.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Маркируйте сокет
Объявление
Objective C
typedef void mpo_socket_label_associate_accept_t( socket_t oldsock, struct label *oldlabel, socket_t newsock, struct label *newlabel );
Параметры
oldsock
Сокет слушания
oldlabel
Метка политики связалась с oldsock
newsock
Новый сокет
newlabel
Метка политики связалась с newsock
Новый сокет создается, когда соединение, принимают (2) редактор эти метки функции, новый сокет на основе существующего слушает (2) сокет луга.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новому сокету
Объявление
Objective C
typedef void mpo_socket_label_associate_t( kauth_cred_t cred, socket_t so, struct label *solabel );
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку сокета
Объявление
Objective C
typedef void mpo_socket_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Исходная метка
dest
Целевая метка
Скопируйте информацию о метке сокета в src в dest.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку сокета
Объявление
Objective C
typedef void mpo_socket_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку сокета. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку сокета
Объявление
Objective C
typedef int mpo_socket_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите воплощенную метку сокета на основе переданной структуры метки. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с приложениями пространства пользователя и чтением пользователем. Если element_name не соответствует пространство имен, которым управляет политика, просто возвратитесь 0. Только возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку сокета
Объявление
Objective C
typedef int mpo_socket_label_init_t( struct label *label, int waitok );
Параметры
label
Новая метка для инициализации
waitok
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку сокета
Объявление
Objective C
typedef int mpo_socket_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, чтобы быть заполненным в
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите внутреннюю структуру метки сокета на основе воплощенных данных метки в текстовом формате.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Сокет переметки
Объявление
Objective C
typedef void mpo_socket_label_update_t( kauth_cred_t cred, socket_t so, struct label *so_label, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
so
Объект; сокет
so_label
Текущая метка сокета
newlabel
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите равноправную метку на сокете от mbuf
Объявление
Objective C
typedef void mpo_socketpeer_label_associate_mbuf_t( struct mbuf *m, struct label *m_label, socket_t so, struct label *so_label );
Параметры
m
Цепочка Mbuf, полученная на сокете так
m_label
Метка для m
so
Текущая метка для сокета
so_label
Метка политики, чтобы быть заполненным для сокета
Установите равноправную метку сокета на основе метки отправителя mbuf.
Это вызывают для каждого полученного пакета TCP/IP. Первое требование данного сокета воздействует на недавно инициализированную метку, и последующие вызовы воздействуют на существующие данные метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Установите равноправную метку на сокете от сокета
Объявление
Objective C
typedef void mpo_socketpeer_label_associate_socket_t( socket_t source, struct label *sourcelabel, socket_t target, struct label *targetlabel );
Параметры
source
Локальный сокет
sourcelabel
Метка политики для источника
target
Равноправный сокет
targetlabel
Метка политики для заполнения для цели
Установите равноправную метку на потоковом сокете домена UNIX от переданной удаленной конечной точки сокета. Когда пара сокета будет соединена и будет сделана для обеих конечных точек, этот вызов будет выполнен.
Обратите внимание на то, что этот вызов только выполняется на соединении; это в настоящее время не обновляется во время коммуникации.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте равноправную метку сокета
Объявление
Objective C
typedef void mpo_socketpeer_label_destroy_t( struct label *label );
Параметры
label
Равноправная метка, которая будет уничтожена
Уничтожьте равноправную метку сокета. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите равноправную метку сокета
Объявление
Objective C
typedef int mpo_socketpeer_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите воплощенную равноправную метку сокета на основе переданной структуры метки. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с приложениями пространства пользователя и чтением пользователем. Если element_name не соответствует пространство имен, которым управляет политика, просто возвратитесь 0. Только возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте равноправную метку сокета
Объявление
Objective C
typedef int mpo_socketpeer_label_init_t( struct label *label, int waitok );
Параметры
label
Новая метка для инициализации
waitok
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на включение учета
Объявление
Objective C
typedef int mpo_system_check_acct_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel );
Параметры
cred
Подчиненные учетные данные
vp
Учетный файл
vlabel
Метка связалась с vp
Определите, нужно ли предмету позволить позволить считать, на основе его метки и метки бухгалтерского файла журнала. См. acct (5) для получения дополнительной информации.
Поскольку учет отключен путем передачи NULL acct (2) системный вызов, политика должна быть подготовлена и к 'vp' и к 'vlabel', чтобы быть NULL.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на аудит
Объявление
Objective C
typedef int mpo_system_check_audit_t( kauth_cred_t cred, void *record, int length );
Параметры
cred
Подчиненные учетные данные
record
Запись аудита
length
Длина записи аудита
Определите, может ли предмет, идентифицированный учетными данными, представить запись аудита для включения в журнал аудита через аудит () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на управление аудитом
Объявление
Objective C
typedef int mpo_system_check_auditctl_t( kauth_cred_t cred, struct vnode *vp, struct label *vl );
Параметры
cred
Подчиненные учетные данные
vp
Файл аудита
vl
Метка связалась с vp
Определите, нужно ли предмету позволить позволить контролировать использование auditctl () системный вызов, на основе его метки и метки предложенного файла аудита.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на управление контролем
Объявление
Objective C
typedef int mpo_system_check_auditon_t( kauth_cred_t cred, int cmd );
Параметры
cred
Подчиненные учетные данные
cmd
Команда управления аудитом
Определите, может ли предмет, идентифицированный учетными данными, выполнить контрольную работу управления подсистемой cmd через прослушивание () системный вызов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение порта управления узла
Объявление
Objective C
typedef int mpo_system_check_host_priv_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, может ли предмет, идентифицированный учетными данными, получить порт управления узла.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется или ненулевой иначе.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на вызов служб NFS
Объявление
Objective C
typedef int mpo_system_check_nfsd_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, нужно ли предмету, идентифицированному учетными данными, позволить вызвать nfssrv (2).
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перезагрузку
Объявление
Objective C
typedef int mpo_system_check_reboot_t( kauth_cred_t cred, int howto );
Параметры
cred
Подчиненные учетные данные
howto
параметр с практическими рекомендациями от перезагрузки (2)
Определите, нужно ли предмету, идентифицированному учетными данными, позволить перезагрузить систему указанным способом.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку системных часов
Объявление
Objective C
typedef int mpo_system_check_settime_t( kauth_cred_t cred );
Параметры
cred
Подчиненные учетные данные
Определите, нужно ли предмету, идентифицированному учетными данными, позволить установить системные часы.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на удаление устройств свопинга
Объявление
Objective C
typedef int mpo_system_check_swapoff_t( kauth_cred_t cred, struct vnode *vp, struct label *label );
Параметры
cred
Подчиненные учетные данные
vp
Устройство свопинга
label
Метка связалась с vp
Определите, нужно ли предмету, идентифицированному учетными данными, позволить удалить vp как устройство свопинга.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на добавление устройств свопинга
Объявление
Objective C
typedef int mpo_system_check_swapon_t( kauth_cred_t cred, struct vnode *vp, struct label *label );
Параметры
cred
Подчиненные учетные данные
vp
Устройство свопинга
label
Метка связалась с vp
Определите, нужно ли предмету, идентифицированному учетными данными, позволить добавить vp как устройство свопинга.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на sysctl
Объявление
Objective C
typedef int mpo_system_check_sysctl_t( kauth_cred_t cred, int *name, u_int namelen, user_addr_t old, /* NULLOK */ user_addr_t oldlenp, /* NULLOK */ int inkernel, user_addr_t newvalue, /* NULLOK */ size_t newlen );
Параметры
cred
Подчиненные учетные данные
name
Целочисленное имя; см. sysctl (3)
namelen
Длина массива имени целых чисел; см. sysctl (3)
old
0 или адрес, где сохранить старое значение; см. sysctl (3)
oldlenp
Указатель на длину старого буфера; см. sysctl (3)
inkernel
Булевская переменная; 1, если вызвано от ядра
newvalue
0 или адрес нового значения; см. sysctl (3)
newlen
Длина нового буфера; см. sysctl (3)
Определите, нужно ли предмету, идентифицированному учетными данными, позволить сделать указанный sysctl (3) транзакция.
sysctl (3) вызов указывает, что, если старое значение не желаемо, oldp и oldlenp должен быть установлен в NULL. Аналогично, если новое значение не должно быть установлено, newp должен быть установлен в NULL и набор newlen к 0.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку сообщения System V
Объявление
Objective C
typedef void mpo_sysvmsg_label_associate_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel, struct msg *msgptr, struct label *msglabel );
Параметры
cred
Подчиненные учетные данные
msqkptr
Очередь сообщений сообщение будет помещена в
msqlabel
Метка очереди сообщений
msgptr
Сообщение
msglabel
Метка сообщения
Маркируйте сообщение как ее помещенный в очередь сообщений.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку сообщения System V
Объявление
Objective C
typedef void mpo_sysvmsg_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку сообщения System V. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку сообщения System V
Объявление
Objective C
typedef void mpo_sysvmsg_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированного сообщения System V.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Очистите метку сообщения System V
Объявление
Objective C
typedef void mpo_sysvmsg_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Очистите метку сообщения System V. Дарвин предварительно выделяет сообщения во время начальной загрузки системы и снова использует их вместо того, чтобы выделить новые. Прежде чем сообщения возвращаются к «свободному пулу», политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на постановку в очередь сообщения System V
Объявление
Objective C
typedef int mpo_sysvmsq_check_enqueue_t( kauth_cred_t cred, struct msg *msgptr, struct label *msglabel, struct msqid_kernel *msqptr, struct label *msqlabel );
Параметры
cred
Подчиненные учетные данные
msgptr
Сообщение
msglabel
Метка сообщения
msqkptr
Очередь сообщений
msqlabel
Метка очереди сообщений
Определите, может ли предмет, идентифицированный учетными данными, добавить данное сообщение к данной очереди сообщений.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на прием сообщений System V
Объявление
Objective C
typedef int mpo_sysvmsq_check_msgrcv_t( kauth_cred_t cred, struct msg *msgptr, struct label *msglabel );
Параметры
cred
Учетные данные предполагаемого получателя
msgptr
Сообщение
msglabel
Метка сообщения
Определите, может ли предмет, идентифицированный учетными данными, получить данное сообщение.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на удаление очереди сообщений System V
Объявление
Objective C
typedef int mpo_sysvmsq_check_msgrmid_t( kauth_cred_t cred, struct msg *msgptr, struct label *msglabel );
Параметры
cred
Учетные данные вызывающей стороны
msgptr
Сообщение
msglabel
Метка сообщения
Очереди сообщений System V удалены с помощью msgctl () системный вызов. Система выполнит итерации по каждому сообщению в очереди, вызывая эту функцию для каждого, чтобы определить, имеет ли вызывающая сторона надлежащие учетные данные.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на msgctl ()
Объявление
Objective C
typedef int mpo_sysvmsq_check_msqctl_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel, int cmd );
Параметры
cred
Учетные данные вызывающей стороны
msqptr
Очередь сообщений
msqlabel
Метка очереди сообщений
Эта проверка прав доступа выполняется для проверки вызовов к msgctl ().
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом для получения очереди сообщений System V
Объявление
Objective C
typedef int mpo_sysvmsq_check_msqget_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel );
Параметры
cred
Учетные данные вызывающей стороны
msqptr
Очередь сообщений требуют
msqlabel
Метка очереди сообщений
На вызове к msgget (), если очередь запросила уже, существует, и это - общедоступная очередь, эта проверка будет выполняться, прежде чем ID очереди возвращается пользователю.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом для получения сообщения System V из данной очереди
Объявление
Objective C
typedef int mpo_sysvmsq_check_msqrcv_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel );
Параметры
cred
Учетные данные вызывающей стороны
msqptr
Очередь сообщений для получения из
msqlabel
Метка очереди сообщений
На вызове к msgrcv (), эта проверка выполняется, чтобы определить, имеет ли вызывающая сторона, получают права на данной очереди.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом, чтобы отправить сообщение System V данной очереди
Объявление
Objective C
typedef int mpo_sysvmsq_check_msqsnd_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel );
Параметры
cred
Учетные данные вызывающей стороны
msqptr
Очередь сообщений для отправки к
msqlabel
Метка очереди сообщений
На вызове к msgsnd (), эта проверка выполняется, чтобы определить, имеет ли вызывающая сторона, отправляют права на данной очереди.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку очереди сообщений System V
Объявление
Objective C
typedef void mpo_sysvmsq_label_associate_t( kauth_cred_t cred, struct msqid_kernel *msqptr, struct label *msqlabel );
Параметры
cred
Подчиненные учетные данные
msqkptr
Очередь сообщений
msqlabel
Метка очереди сообщений
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку очереди сообщений System V
Объявление
Objective C
typedef void mpo_sysvmsq_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку очереди сообщений System V. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку очереди сообщений System V
Объявление
Objective C
typedef void mpo_sysvmsq_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированной очереди сообщений System V.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Очистите метку очереди сообщений System V
Объявление
Objective C
typedef void mpo_sysvmsq_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Очистите метку очереди сообщений System V. Дарвин предварительно выделяет очереди сообщений во время начальной загрузки системы и снова использует их вместо того, чтобы выделить новые. Прежде чем очереди сообщений возвращаются к «свободному пулу», политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на семафор System V управляет работой
Объявление
Objective C
typedef int mpo_sysvsem_check_semctl_t( kauth_cred_t cred, struct semid_kernel *semakptr, struct label *semaklabel, int cmd );
Параметры
cred
Подчиненные учетные данные
semakptr
Указатель на семафорный идентификатор
semaklabel
Метка связалась с семафором
cmd
Работа управления, которая будет выполняться; см. semctl (2)
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу, обозначенную cmd на семафоре System V semakptr.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение семафора System V
Объявление
Objective C
typedef int mpo_sysvsem_check_semget_t( kauth_cred_t cred, struct semid_kernel *semakptr, struct label *semaklabel );
Параметры
cred
Подчиненные учетные данные
semakptr
Указатель на семафорный идентификатор
semaklabel
Метка для соединения с семафором
Определите, может ли предмет, идентифицированный учетными данными, получить семафор System V.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на операции семафора System V
Объявление
Objective C
typedef int mpo_sysvsem_check_semop_t( kauth_cred_t cred, struct semid_kernel *semakptr, struct label *semaklabel, size_t accesstype );
Параметры
cred
Подчиненные учетные данные
semakptr
Указатель на семафорный идентификатор
semaklabel
Метка связалась с семафором
accesstype
Флаги для указания доступа (чтение и/или запись)
Определите, может ли предмет, идентифицированный учетными данными, выполнить операции на семафоре System V, обозначенном semakptr. Флаги accesstype содержат максимальный набор полномочий от массива sem_op, переданного semop системному вызову. Это может содержать SEM_R для операций только для чтения или SEM_A для операций чтения-записи.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку семафора System V
Объявление
Objective C
typedef void mpo_sysvsem_label_associate_t( kauth_cred_t cred, struct semid_kernel *semakptr, struct label *semalabel );
Параметры
cred
Подчиненные учетные данные
semakptr
Создаваемый семафор
semalabel
Метка для соединения с новым семафором
Маркируйте новый семафор System V. Метка была ранее инициализирована и связана с семафором. В это время надлежащее начальное значение метки должно быть присвоено объекту и сохранено в semalabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку семафора System V
Объявление
Objective C
typedef void mpo_sysvsem_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку семафора System V. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку семафора System V
Объявление
Objective C
typedef void mpo_sysvsem_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированного семафора System V. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Очистите метку семафора System V
Объявление
Objective C
typedef void mpo_sysvsem_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет убрана
Очистите метку семафора System V. Дарвин предварительно выделяет семафоры во время начальной загрузки системы и снова использует их вместо того, чтобы выделить новые. Прежде чем семафоры возвращаются к «свободному пулу», политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на отображение общей памяти System V
Объявление
Objective C
typedef int mpo_sysvshm_check_shmat_t( kauth_cred_t cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg );
Параметры
cred
Подчиненные учетные данные
shmsegptr
Указатель на идентификатор сегмента общей памяти
shmseglabel
Метка связалась с сегментом общей памяти
shmflg
флаги shmat; см. shmat (2)
Определите, может ли предмет, идентифицированный учетными данными, отобразить сегмент общей памяти System V, связанный с shmsegptr.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на общую память System V управляет работой
Объявление
Objective C
typedef int mpo_sysvshm_check_shmctl_t( kauth_cred_t cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int cmd );
Параметры
cred
Подчиненные учетные данные
shmsegptr
Указатель на идентификатор сегмента общей памяти
shmseglabel
Метка связалась с сегментом общей памяти
cmd
Работа управления, которая будет выполняться; см. shmctl (2)
Определите, может ли предмет, идентифицированный учетными данными, выполнить работу, обозначенную cmd на сегменте общей памяти System V shmsegptr.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на неотображение общей памяти System V
Объявление
Objective C
typedef int mpo_sysvshm_check_shmdt_t( kauth_cred_t cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel );
Параметры
cred
Подчиненные учетные данные
shmsegptr
Указатель на идентификатор сегмента общей памяти
shmseglabel
Метка связалась с сегментом общей памяти
Определите, может ли предмет, идентифицированный учетными данными, не отобразить сегмент общей памяти System V, связанный с shmsegptr.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом получая идентификатор общей памяти System V
Объявление
Objective C
typedef int mpo_sysvshm_check_shmget_t( kauth_cred_t cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg );
Параметры
cred
Подчиненные учетные данные
shmsegptr
Указатель на идентификатор сегмента общей памяти
shmseglabel
Метка связалась с сегментом общей памяти
shmflg
флаги shmget; см. shmget (2)
Определите, может ли предмет, идентифицированный учетными данными, получить адрес сегмента общей памяти System V.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Создайте метку области общей памяти System V
Объявление
Objective C
typedef void mpo_sysvshm_label_associate_t( kauth_cred_t cred, struct shmid_kernel *shmsegptr, struct label *shmlabel );
Параметры
cred
Подчиненные учетные данные
shmsegptr
Создаваемая область общей памяти
shmlabel
Метка для соединения с новой областью общей памяти
Маркируйте новую область общей памяти System V. Метка была ранее инициализирована и связана с областью общей памяти. В это время надлежащее начальное значение метки должно быть присвоено объекту и сохранено в shmlabel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку общей памяти System V
Объявление
Objective C
typedef void mpo_sysvshm_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку области общей памяти System V. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку области Общей памяти System V
Объявление
Objective C
typedef void mpo_sysvshm_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированной области Общей памяти System V. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Очистите метку Области Памяти Доли System V
Объявление
Objective C
typedef void mpo_sysvshm_label_recycle_t( struct label *shmlabel );
Параметры
shmlabel
Метка, которая будет убрана
Очистите метку Области Общей памяти System V. Дарвин предварительно выделяет эти объекты во время начальной загрузки системы и снова использует их вместо того, чтобы выделить новые. Прежде чем области памяти возвращаются к «свободному пулу», политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Присвойте метку новой kernelspace задаче Маха
Объявление
Objective C
typedef void mpo_task_label_associate_kernel_t( struct task *kproc, struct label *tasklabel, struct label *portlabel );
Параметры
kproc
Новая задача
tasklabel
Метка для новой задачи
portlabel
Метка для нового порта задачи
Обсуждение
Присвойте метки новой задаче ядра и ее порту задачи. И задача и метки порта задачи должны быть указаны. Инициализируются обе новых метки. Если будет связанная структура процесса BSD, то это будет маркировано вызовами к mpo_cred_label_associate_kernel.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_label_associate_kernel_t
-
Присвойте метку новому (пространство пользователя) задача Маха
Объявление
Objective C
typedef void mpo_task_label_associate_t( struct task *parent, struct task *child, struct label *parentlabel, struct label *childlabel, struct label *childportlabel );
Параметры
parent
Родительская задача
child
Новая (дочерняя) задача
parentlabel
Метка родительской задачи
childlabel
Метка для новой задачи
childportlabel
Метка для порта задачи новой задачи
Присвойте метки новой задаче и ее порту задачи. И задача и метки порта задачи должны быть указаны. Инициализируются обе новых метки. Если задача будет иметь связанный процесс BSD, та информация будет сделана доступной task_label_update и port_label_update_cred точками входа.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку задачи Маха
Объявление
Objective C
typedef void mpo_task_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Исходная метка задачи
dest
Целевая метка задачи
Скопируйте информацию о метке задачи Маха от src до dest. Это используется при дублировании дескрипторов метки для реализации семантики копии на записи.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку задачи Маха
Объявление
Objective C
typedef void mpo_task_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку задачи Маха. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку задачи
Объявление
Objective C
typedef int mpo_task_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на задаче. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку задачи Маха
Объявление
Objective C
typedef void mpo_task_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте метку для недавно инстанцированной задачи Маха. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку задачи
Объявление
Objective C
typedef int mpo_task_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите метку задачи из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку задачи Маха
Объявление
Objective C
typedef void mpo_task_label_update_t( struct label *cred, struct label *task );
Параметры
cred
Пользовательские учетные данные маркируют, чтобы использоваться в качестве источника
task
Задача Маха маркирует, чтобы использоваться в качестве места назначения
Обсуждение
Обновите метку на задаче Маха, с помощью предоставленной пользовательской учетной метки. Когда mac_cred_label_update_execve или mac_cred_label_update работа заставляют метку на пользовательских учетных данных изменяться, метка задачи Маха также должна быть обновлена для отражения изменения. Обе метки уже допустимы (инициализированный и создаваемый).
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_cred_label_update_t
mpo_cred_label_update_execve_t
-
Выполните связанные с MAC события, когда поток возвратится к пространству пользователя
Объявление
Objective C
typedef void mpo_thread_userret_t( struct thread *thread );
Параметры
thread
Мах (не BSD) возвращающийся поток
Когда поток возвращается к пространству пользователя через возврат системного вызова или возврат прерывания, эта точка входа разрешает модулям политики выполнять связанные с MAC события.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверьте vnode доступ
Объявление
Objective C
typedef int mpo_vnode_check_access_t( kauth_cred_t cred, struct vnode *vp, struct label *label, int acc_mode );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка для vp
acc_mode
доступ (2) флаги
Определите, как вызовы доступа (2) и связанные вызовы предметом, идентифицированным учетными данными, должны возвратить, когда выполняется на переданном vnode использование переданных флагов доступа. Это должно обычно реализовываться с помощью той же семантики, используемой в mpo_vnode_check_open.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на изменение рабочего каталога
Объявление
Objective C
typedef int mpo_vnode_check_chdir_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel );
Параметры
cred
Подчиненные учетные данные
dvp
Объект; vnode к chdir (2) в
dlabel
Метка политики для dvp
Определите, может ли предмет, идентифицированный учетными данными, изменить процесс рабочий каталог на переданный vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на изменение корневого каталога
Объявление
Objective C
typedef int mpo_vnode_check_chroot_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Каталог vnode
dlabel
Метка политики связалась с dvp
cnp
Имя компонента для dvp
Определите, должен ли предмет, идентифицированный учетными данными, быть позволен chroot (2) в указанный каталог (dvp).
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на создание vnode
Объявление
Objective C
typedef int mpo_vnode_check_create_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct componentname *cnp, struct vnode_attr *vap );
Параметры
cred
Подчиненные учетные данные
dvp
Каталог vnode
dlabel
Метка политики для dvp
cnp
Имя компонента для dvp
vap
vnode приписывает для vap
Определите, может ли предмет, идентифицированный учетными данными, создать vnode с переданным родительским каталогом, передал информацию об имени и передал информацию атрибута. Этот вызов может быть выполнен во многих ситуациях, включая в результате вызовов для открытия (2) with O_CREAT, mknod (2), mkfifo (2), и другие.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на удаление расширенного атрибута
Объявление
Objective C
typedef int mpo_vnode_check_deleteextattr_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel, const char *name );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
vlabel
Метка связалась с vp
name
Расширенное название атрибута
Определите, может ли предмет, идентифицированный учетными данными, удалить расширенный атрибут из переданного vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на обмен данными файла
Объявление
Objective C
typedef int mpo_vnode_check_exchangedata_t( kauth_cred_t cred, struct vnode *v1, struct label *vl1, struct vnode *v2, struct label *vl2 );
Параметры
cred
Подчиненные учетные данные
v1
vnode 1 для свопинга
vl1
Метка политики для v1
v2
vnode 2 для свопинга
vl2
Метка политики для v2
Определите, может ли предмет, идентифицированный учетными данными, подкачать данные в предоставленном vnodes двух.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на выполнение vnode
Объявление
Objective C
typedef int mpo_vnode_check_exec_t( kauth_cred_t cred, struct vnode *vp, struct label *label, struct label *execlabel, /* NULLOK */ struct componentname *cnp, u_int *csflags, void *macpolicyattr, size_t macpolicyattrlen );
Параметры
cred
Подчиненные учетные данные
vp
Возразите vnode для выполнения
label
Метка политики для vp
execlabel
Пространство пользователя обеспечило метку выполнения
cnp
Имя компонента для выполняемого файла
macpolicyattr
MAC специфичные для политики данные атрибута икры.
macpolicyattrlen
Длина специфичной для политики икры приписывает данные.
Определите, может ли предмет, идентифицированный учетными данными, выполнить переданный vnode. Определение выполняется, полномочие сделано отдельно из решений о любом событии перехода метки процесса.
Заключительная метка, execlabel, соответствует метке, предоставленной приложением пространства пользователя с помощью mac_execve системного вызова. Если пользовательское приложение будет использовать поставщика execve (2) вызов вместо Платформы MAC mac_execve () вызов, этой меткой будет NULL.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение атрибутов файла
Объявление
Objective C
typedef int mpo_vnode_check_getattrlist_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel, struct attrlist *alist );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
vlabel
Метка политики для vp
alist
Список атрибутов для получения
Определите, может ли предмет, идентифицированный учетными данными, считать различные атрибуты указанного vnode, или файловую систему или объем, на котором это находится vnode. См. <sys/attr.h> для определений атрибутов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия. Управление доступом покрывает все атрибуты, которые требуют этим вызовом; политике безопасности не разрешают изменить набор атрибутов, которые требуют.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на получение расширенного атрибута
Объявление
Objective C
typedef int mpo_vnode_check_getextattr_t( kauth_cred_t cred, struct vnode *vp, struct label *label, /* NULLOK */ const char *name, struct uio * uio /* NULLOK */ );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
name
Расширенное название атрибута
uio
Указатель структуры I/O
Определите, может ли предмет, идентифицированный учетными данными, получить расширенный атрибут от переданного vnode. Когда getxattr (2) вызов будет сделан со значением данных NULL, uio параметром будет NULL; это сделано для запроса размера данных только.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на ioctl
Объявление
Objective C
typedef int mpo_vnode_check_ioctl_t( kauth_cred_t cred, struct vnode *vp, struct label *label, unsigned int cmd );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
com
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на vnode kqfilter
Объявление
Objective C
typedef int mpo_vnode_check_kqfilter_t( kauth_cred_t active_cred, kauth_cred_t file_cred, /* NULLOK */ struct knote *kn, struct vnode *vp, struct label *label );
Параметры
cred
Подчиненные учетные данные
kn
Объект knote
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, получить knote на переданном vnode.
Возвращаемое значение
Возвратитесь 0, если доступ, если предоставлено, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на переметку
Объявление
Objective C
typedef int mpo_vnode_check_label_update_t( struct ucred *cred, struct vnode *vp, struct label *vnodelabel, struct label *newlabel );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
vnodelabel
Существующая метка политики для vp
newlabel
Метка политики обновляет, чтобы позже быть примененной к vp
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, может ли предмет, идентифицированный учетными данными, повторно маркировать переданный vnode к переданному обновлению метки. Если все политики разрешат изменение метки, то фактическая точка входа переметки (mpo_vnode_label_update) будет следовать.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_relable_vnode_t
-
Проверка управления доступом на создание ссылки
Объявление
Objective C
typedef int mpo_vnode_check_link_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *label, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Каталог vnode
dlabel
Метка политики связалась с dvp
vp
Соедините целевой vnode
label
Метка политики связалась с vp
cnp
Имя компонента для создаваемой ссылки
Определите, нужно ли предмету, идентифицированному учетными данными, позволить создать ссылку к vnode vp с именем, указанным cnp.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на перечисление расширенных атрибутов
Объявление
Objective C
typedef int mpo_vnode_check_listextattr_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
vlabel
Метка политики связалась с vp
Определите, может ли предмет, идентифицированный учетными данными, получить список именованных расширенных атрибутов от vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на поиск
Объявление
Objective C
typedef int mpo_vnode_check_lookup_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Объект vnode
dlabel
Метка политики для dvp
cnp
Искавшее имя компонента
Определите, может ли предмет, идентифицированный учетными данными, выполнить поиск в переданном каталоге vnode для переданного имени (cnp).
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на открытый
Объявление
Objective C
typedef int mpo_vnode_check_open_t( kauth_cred_t cred, struct vnode *vp, struct label *label, int acc_mode );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики связалась с vp
acc_mode
открытый (2) режим доступа
Определите, может ли предмет, идентифицированный учетными данными, выполнить операцию открытия на переданном vnode с переданным режимом доступа.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на чтение
Объявление
Objective C
typedef int mpo_vnode_check_read_t( kauth_cred_t active_cred, /* SUBJECT */ kauth_cred_t file_cred, /* NULLOK */ struct vnode *vp, /* OBJECT */ struct label * label /* LABEL */ );
Параметры
active_cred
Подчиненные учетные данные
file_cred
Учетные данные связались со структурой fileproc
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, выполнить операцию чтения на переданном vnode. active_cred содержат учетные данные предмета, выполняющего работу, и file_cred содержит учетные данные предмета, первоначально открывшего файл.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на каталог чтения
Объявление
Objective C
typedef int mpo_vnode_check_readdir_t( kauth_cred_t cred, /* SUBJECT */ struct vnode *dvp, /* OBJECT */ struct label * dlabel /* LABEL */ );
Параметры
cred
Подчиненные учетные данные
dvp
Объектный каталог vnode
dlabel
Метка политики для dvp
Определите, может ли предмет, идентифицированный учетными данными, выполнить readdir работу на переданном каталоге vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на ссылку чтения
Объявление
Objective C
typedef int mpo_vnode_check_readlink_t( kauth_cred_t cred, struct vnode *vp, struct label *label );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, выполнить readlink работу на переданной символьной ссылке vnode. Этот вызов может быть выполнен во многих ситуациях, включая явный вызов readlink пользовательским процессом, или в результате неявного readlink во время поиска имени процессом.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на переименовывает от
Объявление
Objective C
typedef int mpo_vnode_check_rename_from_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *label, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Каталог vnode
dlabel
Метка политики связалась с dvp
vp
vnode, который будет переименован
label
Метка политики связалась с vp
cnp
Имя компонента для vp
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, нужно ли предмету, идентифицированному учетными данными, позволить переименовать vnode vp к чему-то еще.
Вследствие VFS блокировка ограничений (для проверки надлежащие блокировки vnode сохранены во время этой точки входа), проверки переметки vnode должны были быть разделены на две части: relabel_from и переметка к.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_vnode_check_rename_to_t
-
Проверка управления доступом на переименовывает к
Объявление
Objective C
typedef int mpo_vnode_check_rename_to_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct vnode *vp, /* NULLOK */ struct label *label, /* NULLOK */ int samedir, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Каталог vnode
dlabel
Метка политики связалась с dvp
vp
Перезаписанный vnode
label
Метка политики связалась с vp
samedir
Булевская переменная; 1, если источник и целевые каталоги являются тем же
cnp
Целевое имя компонента
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Обсуждение
Определите, нужно ли предмету, идентифицированному учетными данными, позволить переименовать к vnode vp в каталог dvp, или к имени, представленному cnp. Если нет никакого существующего файла для перезаписи, vp, и меткой будет NULL.
Вследствие VFS блокировка ограничений (для проверки надлежащие блокировки vnode сохранены во время этой точки входа), проверки переметки vnode должны были быть разделены на две части: relabel_from и переметка к.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_vnode_check_rename_from_t
-
Проверка управления доступом на отменяет
Объявление
Objective C
typedef int mpo_vnode_check_revoke_t( kauth_cred_t cred, struct vnode *vp, struct label *label );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, отклонить доступ к переданному vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на выбор
Объявление
Objective C
typedef int mpo_vnode_check_select_t( kauth_cred_t cred, struct vnode *vp, struct label *label, int which );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
which
Работа, выбранная на: FREAD или FWRITE
Определите, может ли предмет, идентифицированный учетными данными, выбрать vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку атрибутов файла
Объявление
Objective C
typedef int mpo_vnode_check_setattrlist_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel, struct attrlist *alist );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
vlabel
Метка политики для vp
alist
Список атрибутов для установки
Определите, может ли предмет, идентифицированный учетными данными, установить различные атрибуты указанного vnode, или файловую систему или объем, на котором это находится vnode. См. <sys/attr.h> для определений атрибутов.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия. Управление доступом покрывает все атрибуты, которые требуют этим вызовом.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку расширенного атрибута
Объявление
Objective C
typedef int mpo_vnode_check_setextattr_t( kauth_cred_t cred, struct vnode *vp, struct label *label, const char *name, struct uio *uio );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
name
Расширенное название атрибута
uio
Указатель структуры I/O
Определите, может ли предмет, идентифицированный учетными данными, установить расширенный атрибут переданного имени и передал пространство имен переданному vnode. Политики реализовывая метки защиты, поддержанные в расширенные атрибуты, могут хотеть обеспечить дополнительные защиты для тех атрибутов. Кроме того, политики должны избежать принятия решений на основе данных, на которые ссылаются от uio, поскольку существует потенциальное состояние состязания между этой проверкой и фактической работой. Если удалить работа выполняется, uio может также быть NULL.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку флагов
Объявление
Objective C
typedef int mpo_vnode_check_setflags_t( kauth_cred_t cred, struct vnode *vp, struct label *label, u_long flags );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
flags
Флаги файла; см. chflags (2)
Определите, может ли предмет, идентифицированный учетными данными, установить переданные флаги на переданном vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку режима
Объявление
Objective C
typedef int mpo_vnode_check_setmode_t( kauth_cred_t cred, struct vnode *vp, struct label *label, mode_t mode );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
mode
Режим File; см. chmod (2)
Определите, может ли предмет, идентифицированный учетными данными, установить переданный режим на переданном vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку uid и ценуроз
Объявление
Objective C
typedef int mpo_vnode_check_setowner_t( kauth_cred_t cred, struct vnode *vp, struct label *label, uid_t uid, gid_t gid );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
uid
Идентификатор пользователя
gid
Группа ID
Определите, может ли предмет, идентифицированный учетными данными, установить переданный uid и передал ценуроз как файл uid и ценуроз файла на переданном vnode. IDs может быть установлен в (-1) не запросить обновление.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на установку меток времени
Объявление
Objective C
typedef int mpo_vnode_check_setutimes_t( kauth_cred_t cred, struct vnode *vp, struct label *label, struct timespec atime, struct timespec mtime );
Параметры
cred
Подчиненные учетные данные
vp
Объект vnode
label
Метка политики для vp
atime
Время доступа; см. utimes (2)
mtime
Время изменения; см. utimes (2)
Определите, может ли предмет, идентифицированный учетными данными, установить переданные метки времени доступа на переданном vnode.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на статистику
Объявление
Objective C
typedef int mpo_vnode_check_stat_t( struct ucred *active_cred, struct ucred *file_cred, /* NULLOK */ struct vnode *vp, struct label *label );
Параметры
active_cred
Подчиненные учетные данные
file_cred
Учетные данные связались со структурой fileproc
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, статистика переданный vnode. Посмотрите статистику (2) для получения дополнительной информации. active_cred содержат учетные данные предмета, выполняющего работу, и file_cred содержит учетные данные предмета, первоначально открывшего файл.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на truncate/ftruncate
Объявление
Objective C
typedef int mpo_vnode_check_truncate_t( kauth_cred_t active_cred, kauth_cred_t file_cred, /* NULLOK */ struct vnode *vp, struct label *label );
Параметры
active_cred
Подчиненные учетные данные
file_cred
Учетные данные связались со структурой fileproc
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, выполнить усеченную работу на переданном vnode. active_cred содержат учетные данные предмета, выполняющего работу, и file_cred содержит учетные данные предмета, первоначально открывшего файл.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Проверка управления доступом на удаление vnode
Объявление
Objective C
typedef int mpo_vnode_check_unlink_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *label, struct componentname *cnp );
Параметры
cred
Подчиненные учетные данные
dvp
Родительский каталог vnode
dlabel
Метка политики для dvp
vp
Возразите vnode для удаления
label
Метка политики для vp
cnp
Имя компонента для vp
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Обсуждение
Определите, может ли предмет, идентифицированный учетными данными, удалить vnode из переданного родительского каталога и передал информацию об имени. Этот вызов может быть выполнен во многих ситуациях, включая как результаты вызовов расцепить (2) и rmdir (2). Политики реализовывая эту точку входа должны также реализовать mpo_check_rename_to для авторизации удаления объектов в результате того, чтобы быть целью переименовывания.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_check_rename_to_t
-
Проверка управления доступом на запись
Объявление
Objective C
typedef int mpo_vnode_check_write_t( kauth_cred_t active_cred, kauth_cred_t file_cred, /* NULLOK */ struct vnode *vp, struct label *label );
Параметры
active_cred
Подчиненные учетные данные
file_cred
Учетные данные связались со структурой fileproc
vp
Объект vnode
label
Метка политики для vp
Определите, может ли предмет, идентифицированный учетными данными, выполнить операцию записи на переданном vnode. active_cred содержат учетные данные предмета, выполняющего работу, и file_cred содержит учетные данные предмета, первоначально открывшего файл.
Возвращаемое значение
Возвратитесь 0, если доступ предоставляется, иначе должно быть возвращено надлежащее значение для errno. Предложенный отказ: EACCES для несоответствия метки или EPERM из-за отсутствия полномочия.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите vnode с devfs записью
Объявление
Objective C
typedef void mpo_vnode_label_associate_devfs_t( struct mount *mp, struct label *mntlabel, struct devnode *de, struct label *delabel, struct vnode *vp, struct label *vlabel );
Параметры
mp
Точка монтирования Devfs
mntlabel
Метка точки монтирования Devfs
de
Запись каталога Devfs
delabel
Метка связалась с de
vp
vnode связался с de
vlabel
Метка связалась с vp
Заполните метку (vlabel) для недавно создаваемого devfs vnode. Метка обычно получается из метки на devfs записи каталога или метки в файловой системе, предоставленной как параметры.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку с vnode
Объявление
Objective C
typedef int mpo_vnode_label_associate_extattr_t( struct mount *mp, struct label *mntlabel, struct vnode *vp, struct label *vlabel );
Параметры
mp
Точка монтирования файловой системы
mntlabel
Метка точки монтирования файловой системы
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Попытка получить информацию о метке для vnode, vp, от файловой системы расширила хранилище атрибута. Метка должна быть сохранена в предоставленном vlabel параметре. Если политика не может получить расширенный атрибут, иногда это - acceptible к нейтрализации к использованию mntlabel.
Если политика требует, чтобы vnodes имел допустимую метку в другом месте, это не ДОЛЖНО возвращаться кроме нерегулярных ошибок и должно всегда обеспечивать допустимую метку некоторого вида. Возврат ошибки заставит vnode, маркирующий быть повторенным в более позднем доступе. Отказ обработать политику центральные ошибки внутренне (поврежденные метки и т.д.) приведет к недоступным файлам.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку файла с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_file_t( struct ucred *cred, struct mount *mp, struct label *mntlabel, struct fileglob *fg, struct label *label, struct vnode *vp, struct label *vlabel );
Параметры
cred
Пользовательские учетные данные
mp
Точка монтирования Fdesc
mntlabel
Метка точки монтирования Fdesc
fg
Структура Fileglob
label
Метка политики для fg
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Объединенная информация о метке для vnode, vp, с меткой открытого дескриптора файла описана fg. Метка должна быть сохранена в предоставленном vlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку канала с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_pipe_t( struct ucred *cred, struct pipe *cpipe, struct label *pipelabel, struct vnode *vp, struct label *vlabel );
Параметры
cred
Пользовательские учетные данные для процесса, открывшего канал
cpipe
Структура канала
pipelabel
Метка связалась с каналом
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Объединенная информация о метке для vnode, vp, с меткой канала, описанного структурой канала cpipe. Метка должна быть сохранена в предоставленном vlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку семафора POSIX с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_posixsem_t( struct ucred *cred, struct pseminfo *psem, struct label *psemlabel, struct vnode *vp, struct label *vlabel );
Параметры
cred
Пользовательские учетные данные для процесса, которые создают psem
psem
Структура семафора POSIX
psemlabel
Метка связалась с psem
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Объединенная информация о метке для vnode, vp, с меткой семафора POSIX описана psem. Метка должна быть сохранена в предоставленном vlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку общей памяти POSIX с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_posixshm_t( struct ucred *cred, struct pshminfo *pshm, struct label *pshmlabel, struct vnode *vp, struct label *vlabel );
Параметры
cred
Пользовательские учетные данные для процесса, создавшего pshm
pshm
Структура общей памяти POSIX
pshmlabel
Метка связалась с pshm
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Объединенная информация о метке для vnode, vp, с меткой области общей памяти POSIX описана pshm. Метка должна быть сохранена в предоставленном vlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_singlelabel_t( struct mount *mp, struct label *mntlabel, struct vnode *vp, struct label *vlabel );
Параметры
mp
Точка монтирования файловой системы
mntlabel
Метка точки монтирования файловой системы
vp
Vnode для маркировки
vlabel
Метка связалась с vp
В файловых системах немультиметки, набор метка для vnode. Метка будет наиболее вероятно основываться на метке файловой системы.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Свяжите метку сокета с vnode
Объявление
Objective C
typedef void mpo_vnode_label_associate_socket_t( kauth_cred_t cred, socket_t so, struct label *solabel, struct vnode *vp, struct label *vlabel );
Параметры
cred
Пользовательские учетные данные для процесса, открывшего сокет
so
Структура сокета
solabel
Метка связалась с так
vp
Vnode для маркировки
vlabel
Метка связалась с vp
Объединенная информация о метке для vnode, vp, с меткой открытого сокета, описанного структурой сокета так. Метка должна быть сохранена в предоставленном vlabel параметре.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Скопируйте метку vnode
Объявление
Objective C
typedef void mpo_vnode_label_copy_t( struct label *src, struct label *dest );
Параметры
src
Источник vnode метка
dest
Целевая метка vnode
Скопируйте информацию о метке vnode от src до dest. На Дарвине это в настоящее время только необходимо, когда выполнение интерпретировало сценарии, но будет позже использоваться, если воплощение метки vnode не может быть атомарной работой.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Уничтожьте метку vnode
Объявление
Objective C
typedef void mpo_vnode_label_destroy_t( struct label *label );
Параметры
label
Метка, которая будет уничтожена
Уничтожьте метку vnode. Так как объект выходит из объема, модули политики должны освободить любую внутреннюю память, связанную с меткой так, чтобы это могло быть уничтожено.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку vnode для контроля
Объявление
Objective C
typedef int mpo_vnode_label_externalize_audit_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на vnode подходящем для включения в запись аудита. Воплощенная метка состоит из текстового представления содержания метки, которое будет добавлено к записи аудита как часть текстового маркера. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Воплотите метку vnode
Объявление
Objective C
typedef int mpo_vnode_label_externalize_t( struct label *label, char *element_name, struct sbuf *sb );
Параметры
label
Метка, которая будет воплощена
element_name
Имя пространства имен метки, для которого должны быть воплощены метки
sb
Строковый буфер, чтобы быть заполненным текстовым представлением метки
Произведите внешнее представление метки на vnode. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя выведут на экран эту воплощенную версию.
Возвращаемое значение
0 на успехе, возвратитесь ненулевой, если ошибка происходит при воплощении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Инициализируйте метку vnode
Объявление
Objective C
typedef void mpo_vnode_label_init_t( struct label *label );
Параметры
label
Новая метка для инициализации
Инициализируйте хранение метки для использования с недавно инстанцированным vnode, или для временного хранения, связанного с копированием в или из метки vnode. В то время как необходимо выделить площадь для резидентного объекта ядра vnode метка, еще не необходимо соединить этот vnode с персистентными складами метки, такими как расширенные атрибуты. Сон разрешен.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Усвойте метку vnode
Объявление
Objective C
typedef int mpo_vnode_label_internalize_t( struct label *label, char *element_name, char *element_data );
Параметры
label
Метка, которая будет усвоена
element_name
Имя пространства имен метки, для которого должна быть усвоена метка
element_data
Текстовые данные, которые будут усвоены
Произведите метку vnode из внешнего представления. Воплощенная метка состоит из текстового представления содержания метки, которое может использоваться с пользовательскими приложениями. Агностические политикой инструменты пространства пользователя передадут текстовую версию ядру для обработки отдельными модулями политики.
Политика усваивает точки входа, будет вызван, только если политика зарегистрировала интерес к пространству имен метки.
Возвращаемое значение
0 на успехе, Иначе, возврат, ненулевой, если ошибка происходит при усвоении данных метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Очистите метку vnode
Объявление
Objective C
typedef void mpo_vnode_label_recycle_t( struct label *label );
Параметры
label
Метка, которая будет убрана для повторного использования
Очистите метку vnode. Дарвин (Тайгер, 8.x) выделяет vnodes по требованию, но обычно никогда не освобождает их. Прежде чем vnodes помещаются назад в бесплатных списках для повторного использования, политики могут очистка или перезаписывать любое информационное настоящее в метке.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Запишите метку в расширенный атрибут
Объявление
Objective C
typedef int mpo_vnode_label_store_t( kauth_cred_t cred, struct vnode *vp, struct label *vlabel, struct label *intlabel );
Параметры
cred
Подчиненные учетные данные
vp
vnode, для которого сохранена метка
vlabel
Метка связалась с vp
intlabel
Новая метка для хранения
Сохраните новую метку в расширенном атрибуте, соответствующем предоставленному vnode. Политика уже авторизовала работу; этот вызов должен быть реализован для выполнения фактической работы.
Возвращаемое значение
В случае ошибки надлежащее значение для errno должно быть возвращено, иначе возврат 0 на успех.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Обновите метку vnode от расширенных атрибутов
Объявление
Objective C
typedef int mpo_vnode_label_update_extattr_t( struct mount *mp, struct label *mntlabel, struct vnode *vp, struct label *vlabel, const char *name );
Параметры
mp
Точка монтирования файловой системы
mntlabel
Метка точки монтирования
vp
Vnode для маркировки
vlabel
Метка связалась с vp
name
Имя xattr
Обсуждение
Когда расширенный атрибут обновляется через функции управления атрибута Поставщика, MAC vnode метка мог бы также потребовать обновления. Политики должны сначала определить, соответствует ли 'имя' их имя метки xattr. Если это делает, ядро, или заменил или удалил именованный расширенный атрибут, ранее связанный с vnode. Обычно метки должны только быть изменены через вызовы управления меткой Платформы MAC, но иногда компоненты пространства пользователя будут непосредственно изменять расширенные атрибуты. Например, 'CP', 'tar', и т.д. управляет расширенными атрибутами в пространстве пользователя, не ядром.
Эту точку входа вызывают после того, как обновление метки произошло, таким образом, это не может возвратить отказ. Однако работе предшествует mpo_vnode_check_setextattr () проверка управления доступом.
Если метка vnode должна быть обновлена, политика должна возвратить ненулевое значение. Метка vnode будет отмечена для переассоциации платформой.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_vnode_check_setextattr_t
-
Обновите метку vnode
Объявление
Objective C
typedef void mpo_vnode_label_update_t( kauth_cred_t cred, struct vnode *vp, struct label *vnodelabel, struct label *label );
Параметры
cred
Подчиненные учетные данные
vp
vnode, чтобы повторно маркировать
vnodelabel
Существующая метка vnode
label
Новая метка для замены существующей метки
Обсуждение
Предмет, идентифицированный учетными данными, ранее запросил и был разрешен повторно маркировать vnode; эта точка входа позволяет политикам выполнить фактическую работу переметки. Политики должны обновить vnodelabel использование метки, сохраненной в параметре метки.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
См. также
mpo_vnode_check_label_update_t
-
Создайте новый vnode, поддержанный расширенными атрибутами
Объявление
Objective C
typedef int mpo_vnode_notify_create_t( kauth_cred_t cred, struct mount *mp, struct label *mntlabel, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *vlabel, struct componentname *cnp );
Параметры
cred
Пользовательские учетные данные для процесса создания
mp
Точка монтирования файловой системы
mntlabel
Метка точки монтирования файловой системы
dvp
Родительский каталог vnode
dlabel
Родительский каталог vnode метка
vp
Недавно создаваемый vnode
vlabel
Метка для соединения с новым vnode
cnp
Имя компонента для vp
Выпишите метку для недавно создаваемого vnode, наиболее вероятное хранение результатов в файловой системе расширенный атрибут. Большинство политик получит новую метку vnode с помощью информации от комбинации предмета (пользователь) учетные данные, метка файловой системы, метка родительского каталога, и потенциально компонент пути.
Возвращаемое значение
Если работа успешно выполняется, сохраните новую метку в vlabel и возвратитесь 0. Иначе, возвратите надлежащее значение errno.
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Сообщите политикам MAC, что был соединен vnode
Объявление
Objective C
typedef void mpo_vnode_notify_link_t( kauth_cred_t cred, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *vlabel, struct componentname *cnp );
Параметры
cred
Пользовательские учетные данные для процесса переименования
dvp
Родительский каталог для места назначения
dlabel
Метка политики для dvp
vp
Vnode это соединяется
vlabel
Метка политики для vp
cnp
Имя компонента для места назначения
Сообщите политикам MAC, что был соединен vnode.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Объявление
Objective C
typedef struct ucred *kauth_cred_t;
Оператор импорта
Objective C
#include <ucred.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
typedef struct ucred *kauth_cred_t;
Оператор импорта
Objective C
#include <ucred.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Политика MAC обрабатывает тип
Объявление
Objective C
typedef unsigned int mac_policy_handle_t;
Обсуждение
Дескриптор MAC используется для однозначного определения загруженной политики в Платформе MAC.
Переменная этого типа установлена mac_policy_register ().
Оператор импорта
Objective C
#include <mac_policy.h>;
Доступность
Доступный в OS X v10.5 через OS X v10.5.
-
Конфигурация политики Mac
Объявление
Objective C
/* XXX - reorder these for better aligment on 64bit platforms */ struct mac_policy_conf { const char *mpc_name; /** policy name */ const char *mpc_fullname; /** full name */ const char **mpc_labelnames; /** managed label namespaces */ unsigned int mpc_labelname_count; /** number of managed label namespaces */ struct mac_policy_ops *mpc_ops; /** operation vector */ int mpc_loadtime_flags; /** load time flags */ int *mpc_field_off; /** label slot */ int mpc_runtime_flags; /** run time flags */ mpc_t mpc_list; /** List reference */ void *mpc_data; /** module data */ };
Обсуждение
Эта структура указывает конфигурационную информацию для модуля политики MAC. Разработчик модуля политики должен предоставить короткое уникальное имя политики, более дескриптивное полное имя, список пространств имен метки и количества, указателя на зарегистрированные операции точки enty, любые флаги времени загрузки, и дополнительно, указателя на идентификатор слота метки.
Платформа обновит флаги во время выполнения (mpc_runtime_flags), чтобы указать, что был зарегистрирован модуль.
Если идентификатором слота метки (mpc_field_off) будет NULL, то Платформа не обеспечит хранение метки для политики. Иначе, Платформа сохранит расположение метки (слот) в этом поле.
mpc_list поле используется Платформой и не должно быть изменено политиками.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Объявление
Objective C
#define _KAUTH_CRED_T #define _KAUTH_CRED_T #define MAC_NOWAIT 1 #define MAC_WAITOK 0 #define MPC_LOADTIME_BASE_POLICY 0x00000008 #define MPC_LOADTIME_FLAG_LABELMBUFS 0x00000004 #define MPC_LOADTIME_FLAG_NOTLATE 0x00000001 #define MPC_LOADTIME_FLAG_UNLOADOK 0x00000002 #define MPC_RUNTIME_FLAG_REGISTERED 0x00000001
Константы
-
_KAUTH_CRED_T
_KAUTH_CRED_T
-
dummy
dummy
-
MAC_NOWAIT
MAC_NOWAIT
Операции выделения могут не блокировать
Если память не сразу доступна, вместо блокирования, средство выделения может возвратить ошибку. Этот тип выделения не будет спать, сохраняя блокировку семантики.
Доступный в OS X v10.5 через OS X v10.5.
-
MAC_WAITOK
MAC_WAITOK
Операции выделения могут блокировать
Если память не будет сразу доступна, то подпрограмма распределения блокирует (обычно спящий), пока память не будет доступна.
Доступный в OS X v10.5 через OS X v10.5.
-
MPC_LOADTIME_BASE_POLICY
MPC_LOADTIME_BASE_POLICY
Флаг для указания основной политики
Этот флаг указывает, что модуль политики является основной политикой. Только один модуль может объявить себя как основа, иначе процесс начальной загрузки будет остановлен.
Доступный в OS X v10.5 через OS X v10.5.
-
MPC_LOADTIME_FLAG_LABELMBUFS
MPC_LOADTIME_FLAG_LABELMBUFS
Неподдерживаемый
XXX Этих флагов еще не поддерживаются.
Доступный в OS X v10.5 через OS X v10.5.
-
MPC_LOADTIME_FLAG_NOTLATE
MPC_LOADTIME_FLAG_NOTLATE
Флаг для указания регистрационного предпочтения
Этот флаг указывает, что модуль политики должен быть загружен и инициализирован рано в процессе начальной загрузки. Если флаг будет указан, то попытки зарегистрировать модуль после начальной загрузки будут отклонены. Флаг может использоваться политиками, которые требуют распространяющейся маркировки всех системных объектов и не могут обработать объекты, должным образом не инициализированные политикой.
Доступный в OS X v10.5 через OS X v10.5.
-
MPC_LOADTIME_FLAG_UNLOADOK
MPC_LOADTIME_FLAG_UNLOADOK
Флаг для указания разгружает предпочтение
Этот флаг указывает, что может быть разгружен модуль политики. Если этот флаг не будет установлен, то платформа политики отклонит запросы для разгрузки модуля. Этот флаг мог бы использоваться модулями, выделяющими метку, утверждают и неспособны освободить то состояние во время выполнения, или для модулей, просто не хотящих разрешать, разгружают операции.
Доступный в OS X v10.5 через OS X v10.5.
-
MPC_RUNTIME_FLAG_REGISTERED
MPC_RUNTIME_FLAG_REGISTERED
Регистрационный флаг политики
Этот флаг указывает, что модуль политики был успешно зарегистрирован в платформе TrustedBSD MAC. Платформа установит этот флаг в mpc_runtime_flags поле mac_policy_conf структуры политики после регистрации политики.
Доступный в OS X v10.5 через OS X v10.5.
-