Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/ru/books/arch-handbook/mac/_index.po
18098 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <[email protected]>, 2025, 2026.
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: 2026-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <[email protected]>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksarch-handbookmac_index/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"

#. type: Title =
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:19
#, no-wrap
msgid "The TrustedBSD MAC Framework"
msgstr "Фреймворк TrustedBSD MAC"

#. type: YAML Front Matter: title
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1
#, no-wrap
msgid "Chapter 6. The TrustedBSD MAC Framework"
msgstr "Глава 6. Фреймворк TrustedBSD MAC"

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:57
#, no-wrap
msgid "MAC Documentation Copyright"
msgstr "Авторские права документации MAC"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:60
msgid ""
"This documentation was developed for the FreeBSD Project by Chris Costello "
"at Safeport Network Services and Network Associates Laboratories, the "
"Security Research Division of Network Associates, Inc. under DARPA/SPAWAR "
"contract N66001-01-C-8035 (\"CBOSS\"), as part of the DARPA CHATS research "
"program."
msgstr ""
"Этот документ был разработан для проекта FreeBSD Крисом Костелло из Safeport "
"Network Services и Network Associates Laboratories, подразделения "
"исследований безопасности Network Associates, Inc., по контракту DARPA/"
"SPAWAR N66001-01-C-8035 (\"CBOSS\") в рамках исследовательской программы "
"DARPA CHATS."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:62
msgid ""
"Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, "
"HTML, PDF, PostScript, RTF and so forth) with or without modification, are "
"permitted provided that the following conditions are met:"
msgstr ""
"Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, "
"HTML, PDF, PostScript, RTF and so forth) with or without modification, are "
"permitted provided that the following conditions are met:"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:64
msgid ""
"Redistributions of source code (SGML DocBook) must retain the above "
"copyright notice, this list of conditions and the following disclaimer as "
"the first lines of this file unmodified."
msgstr ""
"Redistributions of source code (SGML DocBook) must retain the above "
"copyright notice, this list of conditions and the following disclaimer as "
"the first lines of this file unmodified."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:65
msgid ""
"Redistributions in compiled form (transformed to other DTDs, converted to "
"PDF, PostScript, RTF and other formats) must reproduce the above copyright "
"notice, this list of conditions and the following disclaimer in the "
"documentation and/or other materials provided with the distribution."
msgstr ""
"Распространение в скомпилированной форме (преобразованное в другие DTD, "
"конвертированное в PDF, PostScript, RTF и другие форматы) должно включать "
"указанное выше уведомление об авторских правах, данный список условий и "
"следующий отказ от ответственности в документации и/или других материалах, "
"предоставляемых вместе с распространением."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:70
msgid ""
"THIS DOCUMENTATION IS PROVIDED BY THE NETWORKS ASSOCIATES TECHNOLOGY, INC "
"\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED "
"TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR "
"PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL NETWORKS ASSOCIATES TECHNOLOGY, "
"INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR "
"CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF "
"SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS "
"INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN "
"CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) "
"ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF "
"THE POSSIBILITY OF SUCH DAMAGE."
msgstr ""
"ЭТА ДОКУМЕНТАЦИЯ ПРЕДОСТАВЛЯЕТСЯ NETWORKS ASSOCIATES TECHNOLOGY, INC «КАК "
"ЕСТЬ», И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ "
"ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ И "
"ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ ОТРИЦАЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ "
"NETWORKS ASSOCIATES TECHNOLOGY, INC НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ "
"ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ШТРАФНЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ("
"ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ЗАТРАТЫ НА ЗАМЕНУ ТОВАРОВ ИЛИ УСЛУГ; "
"ПОТЕРЮ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ЛИБО ПРЕРЫВАНИЕ БИЗНЕСА), "
"ВЫЗВАННЫЕ ЛЮБЫМ ОБРАЗОМ И НА ОСНОВАНИИ ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО "
"В РАМКАХ ДОГОВОРА, СТРОГОЙ ОТВЕТСТВЕННОСТИ ИЛИ ДЕЛИКТА (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ "
"ИЛИ ИНОЕ), ВОЗНИКШИЕ ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ЭТОЙ ДОКУМЕНТАЦИИ, ДАЖЕ ЕСЛИ "
"БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:73
#, no-wrap
msgid "Synopsis"
msgstr "Обзор"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:78
msgid ""
"FreeBSD includes experimental support for several mandatory access control "
"policies, as well as a framework for kernel security extensibility, the "
"TrustedBSD MAC Framework.  The MAC Framework is a pluggable access control "
"framework, permitting new security policies to be easily linked into the "
"kernel, loaded at boot, or loaded dynamically at run-time.  The framework "
"provides a variety of features to make it easier to implement new security "
"policies, including the ability to easily tag security labels (such as "
"confidentiality information) onto system objects."
msgstr ""
"FreeBSD включает экспериментальную поддержку нескольких политик "
"обязательного контроля доступа, а также инфраструктуру для расширяемости "
"безопасности ядра — TrustedBSD MAC Framework. MAC Framework представляет "
"собой модульную инфраструктуру контроля доступа, позволяющую легко "
"встраивать новые политики безопасности в ядро, загружать их при старте "
"системы или динамически во время работы. Инфраструктура предоставляет "
"множество возможностей для упрощения реализации новых политик безопасности, "
"включая возможность легко присваивать метки безопасности (например, "
"информацию о конфиденциальности) объектам системы."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:80
msgid ""
"This chapter introduces the MAC policy framework and provides documentation "
"for a sample MAC policy module."
msgstr ""
"Эта глава представляет фреймворк политик MAC и содержит документацию для "
"образца модуля политики MAC."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:82
#, no-wrap
msgid "Introduction"
msgstr "Введение"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:88
msgid ""
"The TrustedBSD MAC framework provides a mechanism to allow the compile-time "
"or run-time extension of the kernel access control model.  New system "
"policies may be implemented as kernel modules and linked to the kernel; if "
"multiple policy modules are present, their results will be composed.  The "
"MAC Framework provides a variety of access control infrastructure services "
"to assist policy writers, including support for transient and persistent "
"policy-agnostic object security labels.  This support is currently "
"considered experimental."
msgstr ""
"Фреймворк TrustedBSD MAC предоставляет механизм для расширения модели "
"контроля доступа ядра во время компиляции или выполнения. Новые политики "
"системы могут быть реализованы в виде модулей ядра и связаны с ним; если "
"присутствуют несколько модулей политик, их результаты будут объединены. "
"Фреймворк MAC предоставляет различные инфраструктурные сервисы контроля "
"доступа для помощи разработчикам политик, включая поддержку временных и "
"постоянных меток безопасности объектов, не зависящих от политик. В настоящее "
"время эта поддержка считается экспериментальной."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:90
msgid ""
"This chapter provides information appropriate for developers of policy "
"modules, as well as potential consumers of MAC-enabled environments, to "
"learn about how the MAC Framework supports access control extension of the "
"kernel."
msgstr ""
"Эта глава предоставляет информацию, предназначенную для разработчиков "
"модулей политик, а также потенциальных пользователей сред с поддержкой MAC, "
"чтобы узнать о том, как MAC Framework поддерживает расширение контроля "
"доступа в ядре."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:92
#, no-wrap
msgid "Policy Background"
msgstr "Общие сведения о политиках"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:99
msgid ""
"Mandatory Access Control (MAC), refers to a set of access control policies "
"that are mandatorily enforced on users by the operating system.  MAC "
"policies may be contrasted with Discretionary Access Control (DAC) "
"protections, by which non-administrative users may (at their discretion) "
"protect objects.  In traditional UNIX systems, DAC protections include file "
"permissions and access control lists; MAC protections include process "
"controls preventing inter-user debugging and firewalls.  A variety of MAC "
"policies have been formulated by operating system designers and security "
"researches, including the Multi-Level Security (MLS) confidentiality policy, "
"the Biba integrity policy, Role-Based Access Control (RBAC), Domain and Type "
"Enforcement (DTE), and Type Enforcement (TE).  Each model bases decisions on "
"a variety of factors, including user identity, role, and security clearance, "
"as well as security labels on objects representing concepts such as data "
"sensitivity and integrity."
msgstr ""
"Мандатное управление доступом (MAC — Mandatory Access Control) относится к "
"набору политик контроля доступа, которые в обязательном порядке применяются "
"операционной системой к пользователям. Политики MAC можно противопоставить "
"защите на основе дискреционного управления доступом (DAC — Discretionary "
"Access Control), при которой непривилегированные пользователи могут (по "
"своему усмотрению) защищать объекты. В традиционных UNIX-системах защита DAC "
"включает права доступа к файлам и списки контроля доступа; защита MAC "
"включает управление процессами, предотвращающее отладку между "
"пользователями, и межсетевые экраны. Различные политики MAC были разработаны "
"создателями операционных систем и исследователями безопасности, включая "
"политику конфиденциальности многоуровневой безопасности (MLS — Multi-Level "
"Security), политику целостности Biba, управление доступом на основе ролей ("
"RBAC — Role-Based Access Control), принудительное применение доменов и типов "
"(DTE — Domain and Type Enforcement) и принудительное применение типов (TE — "
"Type Enforcement). Каждая модель основывает решения на различных факторах, "
"включая идентификатор пользователя, роль и уровень доступа, а также метки "
"безопасности на объектах, представляющих такие концепции, как "
"конфиденциальность и целостность данных."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:102
msgid ""
"The TrustedBSD MAC Framework is capable of supporting policy modules that "
"implement all of these policies, as well as a broad class of system "
"hardening policies, which may use existing security attributes, such as user "
"and group IDs, as well as extended attributes on files, and other system "
"properties.  In addition, despite the name, the MAC Framework can also be "
"used to implement purely discretionary policies, as policy modules are given "
"substantial flexibility in how they authorize protections."
msgstr ""
"Фреймворк TrustedBSD MAC способен поддерживать модули политик, реализующие "
"все эти политики, а также широкий класс политик усиления защиты системы, "
"которые могут использовать существующие атрибуты безопасности, такие как "
"идентификаторы пользователей и групп, а также расширенные атрибуты файлов и "
"другие свойства системы. Кроме того, несмотря на название, фреймворк MAC "
"также может использоваться для реализации чисто дискреционных политик, "
"поскольку модулям политик предоставляется значительная гибкость в том, как "
"они авторизуют защиту."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:104
#, no-wrap
msgid "MAC Framework Kernel Architecture"
msgstr "Архитектура MAC Framework в ядре"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:108
msgid ""
"The TrustedBSD MAC Framework permits kernel modules to extend the operating "
"system security policy, as well as providing infrastructure functionality "
"required by many access control modules.  If multiple policies are "
"simultaneously loaded, the MAC Framework will usefully (for some definition "
"of useful) compose the results of the policies."
msgstr ""
"Фреймворк TrustedBSD MAC позволяет модулям ядра расширять политику "
"безопасности операционной системы, а также предоставляет функциональность "
"инфраструктуры, необходимую многим модулям контроля доступа. Если "
"одновременно загружено несколько политик, фреймворк MAC полезным образом (в "
"некотором смысле полезным) объединит результаты этих политик."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:110
#, no-wrap
msgid "Kernel Elements"
msgstr "Элементы ядра"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:113
msgid "The MAC Framework contains a number of kernel elements:"
msgstr "В рамках MAC Framework реализован ряд элементов ядра:"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:115
msgid "Framework management interfaces"
msgstr "Интерфейсы управления фреймворком"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:116
msgid "Concurrency and synchronization primitives."
msgstr "Параллелизм и примитивы синхронизации."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:117
msgid "Policy registration"
msgstr "Регистрация политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:118
msgid "Extensible security label for kernel objects"
msgstr "Расширяемая метка безопасности для объектов ядра"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:119
msgid "Policy entry point composition operators"
msgstr "Операторы композиции точки входа политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:120
msgid "Label management primitives"
msgstr "Примитивы управления метками"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:121
msgid "Entry point API invoked by kernel services"
msgstr "Точка входа API, вызываемая службами ядра"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:122
msgid "Entry point API to policy modules"
msgstr "Точка входа API для модулей политик"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:123
msgid ""
"Entry points implementations (policy life cycle, object life cycle/label "
"management, access control checks)."
msgstr ""
"Реализации точек входа (жизненный цикл политики, жизненный цикл объекта/"
"управление метками, проверки контроля доступа)."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:124
msgid "Policy-agnostic label-management system calls"
msgstr "Системные вызовы, независимые от политик, для управления метками"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:125
msgid "`mac_syscall()` multiplex system call"
msgstr "`mac_syscall()` мультиплексный системный вызов"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:126
msgid "Various security policies implemented as MAC policy modules"
msgstr ""
"Различные политики безопасности, реализованные в виде модулей политики MAC"

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:128
#, no-wrap
msgid "Framework Management Interfaces"
msgstr "Интерфейсы управления фреймворком"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:131
msgid ""
"The TrustedBSD MAC Framework may be directly managed using sysctl's, loader "
"tunables, and system calls."
msgstr ""
"Фреймворком TrustedBSD MAC можно напрямую управлять с помощью sysctl, "
"параметров загрузчика и системных вызовов."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:136
msgid ""
"In most cases, sysctl's and loader tunables of the same name modify the same "
"parameters, and control behavior such as enforcement of protections relating "
"to various kernel subsystems.  In addition, if MAC debugging support is "
"compiled into the kernel, several counters will be maintained tracking label "
"allocation.  It is generally advisable that per-subsystem enforcement "
"controls not be used to control policy behavior in production environments, "
"as they broadly impact the operation of all active policies.  Instead, per-"
"policy controls should be preferred, as they provide greater granularity and "
"greater operational consistency for policy modules."
msgstr ""
"В большинстве случаев одноимённые параметры sysctl и настройки загрузчика "
"изменяют одни и те же параметры и управляют поведением, таким как применение "
"защитных механизмов, связанных с различными подсистемами ядра. Кроме того, "
"если в ядро включена поддержка отладки MAC, будет вестись несколько "
"счётчиков для отслеживания выделения меток. Обычно рекомендуется не "
"использовать общие настройки подсистем для управления поведением политик в "
"рабочих средах, так как они широко влияют на работу всех активных политик. "
"Вместо этого следует предпочитать настройки отдельных политик, поскольку они "
"обеспечивают более высокую детализацию и большую операционную "
"согласованность для модулей политик."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:138
msgid ""
"Loading and unloading of policy modules is performed using the system module "
"management system calls and other system interfaces, including boot loader "
"variables; policy modules will have the opportunity to influence load and "
"unload events, including preventing undesired unloading of the policy."
msgstr ""
"Загрузка и выгрузка модулей политики выполняется с использованием системных "
"вызовов управления модулями и других системных интерфейсов, включая "
"переменные загрузчика; модули политики получат возможность влиять на события "
"загрузки и выгрузки, включая предотвращение нежелательной выгрузки политики."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:140
#, no-wrap
msgid "Policy List Concurrency and Synchronization"
msgstr "Список политик параллелизма и синхронизации"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:147
msgid ""
"As the set of active policies may change at run-time, and the invocation of "
"entry points is non-atomic, synchronization is required to prevent loading "
"or unloading of policies while an entry point invocation is in progress, "
"freezing the set of active policies for the duration.  This is accomplished "
"by means of a framework busy count: whenever an entry point is entered, the "
"busy count is incremented; whenever it is exited, the busy count is "
"decremented.  While the busy count is elevated, policy list changes are not "
"permitted, and threads attempting to modify the policy list will sleep until "
"the list is not busy.  The busy count is protected by a mutex, and a "
"condition variable is used to wake up sleepers waiting on policy list "
"modifications.  One side effect of this synchronization model is that "
"recursion into the MAC Framework from within a policy module is permitted, "
"although not generally used."
msgstr ""
"Поскольку набор активных политик может изменяться во время выполнения, а "
"вызов точек входа не является атомарным, требуется синхронизация для "
"предотвращения загрузки или выгрузки политик во время выполнения вызова "
"точки входа, фиксируя набор активных политик на время выполнения. Это "
"достигается с помощью счетчика занятости фреймворка: при входе в точку входа "
"счетчик увеличивается; при выходе из неё — уменьшается. Пока счетчик "
"занятости повышен, изменения списка политик запрещены, и потоки, пытающиеся "
"изменить список политик, будут ждать, пока список не освободится. Счетчик "
"занятости защищается мьютексом, а условная переменная используется для "
"пробуждения потоков, ожидающих изменений списка политик. Побочным эффектом "
"этой модели синхронизации является то, что рекурсивный вход в MAC Framework "
"из модуля политики разрешен, хотя обычно не используется."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:150
msgid ""
"Various optimizations are used to reduce the overhead of the busy count, "
"including avoiding the full cost of incrementing and decrementing if the "
"list is empty or contains only static entries (policies that are loaded "
"before the system starts, and cannot be unloaded).  A compile-time option is "
"also provided which prevents any change in the set of loaded policies at run-"
"time, which eliminates the mutex locking costs associated with supporting "
"dynamically loaded and unloaded policies as synchronization is no longer "
"required."
msgstr ""
"Для снижения накладных расходов счётчика занятости используются различные "
"оптимизации, включая избегание полной стоимости увеличения и уменьшения, "
"если список пуст или содержит только статические записи (политики, "
"загруженные до старта системы, которые нельзя выгрузить). Также "
"предоставляется опция на этапе компиляции, которая предотвращает любые "
"изменения в наборе загруженных политик во время выполнения, что устраняет "
"затраты на блокировку мьютексов, связанные с поддержкой динамически "
"загружаемых и выгружаемых политик, поскольку синхронизация больше не "
"требуется."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:152
msgid ""
"As the MAC Framework is not permitted to block in some entry points, a "
"normal sleep lock cannot be used; as a result, it is possible for the load "
"or unload attempt to block for a substantial period of time waiting for the "
"framework to become idle."
msgstr ""
"Поскольку MAC Framework не может блокировать некоторые точки входа, обычная "
"блокировка сна не может быть использована; в результате попытка загрузки или "
"выгрузки может блокироваться на значительное время, ожидая, пока фреймворк "
"станет свободным."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:154
#, no-wrap
msgid "Label Synchronization"
msgstr "Синхронизация меток"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:161
msgid ""
"As kernel objects of interest may generally be accessed from more than one "
"thread at a time, and simultaneous entry of more than one thread into the "
"MAC Framework is permitted, security attribute storage maintained by the MAC "
"Framework is carefully synchronized.  In general, existing kernel "
"synchronization on kernel object data is used to protect MAC Framework "
"security labels on the object: for example, MAC labels on sockets are "
"protected using the existing socket mutex.  Likewise, semantics for "
"concurrent access are generally identical to those of the container objects: "
"for credentials, copy-on-write semantics are maintained for label contents "
"as with the remainder of the credential structure.  The MAC Framework "
"asserts necessary locks on objects when invoked with an object reference.  "
"Policy authors must be aware of these synchronization semantics, as they "
"will sometimes limit the types of accesses permitted on labels: for example, "
"when a read-only reference to a credential is passed to a policy via an "
"entry point, only read operations are permitted on the label state attached "
"to the credential."
msgstr ""
"Поскольку к объектам ядра обычно может обращаться более одного потока "
"одновременно, и допускается одновременный вход нескольких потоков в MAC "
"Framework, хранение атрибутов безопасности, поддерживаемое MAC Framework, "
"тщательно синхронизировано. Как правило, существующая синхронизация ядра для "
"данных объектов ядра используется для защиты меток безопасности MAC "
"Framework на объекте: например, метки MAC на сокетах защищаются с помощью "
"существующего мьютекса сокета. Аналогично, семантика параллельного доступа "
"обычно идентична семантике контейнерных объектов: для учётных данных "
"поддерживается семантика копирования при записи для содержимого меток, как и "
"для остальной структуры учётных данных. MAC Framework устанавливает "
"необходимые блокировки на объекты при вызове с ссылкой на объект. Авторам "
"политик необходимо учитывать эти семантики синхронизации, так как они иногда "
"ограничивают типы доступа к меткам: например, когда ссылка только для чтения "
"на учётные данные передаётся политике через точку входа, разрешены только "
"операции чтения для состояния метки, прикрепленного к учётным данным."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:163
#, no-wrap
msgid "Policy Synchronization and Concurrency"
msgstr "Синхронизация политики и параллелизм"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:169
msgid ""
"Policy modules must be written to assume that many kernel threads may "
"simultaneously enter one more policy entry points due to the parallel and "
"preemptive nature of the FreeBSD kernel.  If the policy module makes use of "
"mutable state, this may require the use of synchronization primitives within "
"the policy to prevent inconsistent views on that state resulting in "
"incorrect operation of the policy.  Policies will generally be able to make "
"use of existing FreeBSD synchronization primitives for this purpose, "
"including mutexes, sleep locks, condition variables, and counting "
"semaphores.  However, policies should be written to employ these primitives "
"carefully, respecting existing kernel lock orders, and recognizing that some "
"entry points are not permitted to sleep, limiting the use of primitives in "
"those entry points to mutexes and wakeup operations."
msgstr ""
"Модули политик должны быть написаны с учётом того, что множество потоков "
"ядра могут одновременно войти в одну или несколько точек входа политики из-"
"за параллельной и вытесняющей природы ядра FreeBSD. Если модуль политики "
"использует изменяемое состояние, это может потребовать применения примитивов "
"синхронизации внутри политики, чтобы предотвратить несогласованные "
"представления этого состояния, ведущие к некорректной работе политики. "
"Политики, как правило, могут использовать существующие примитивы "
"синхронизации FreeBSD для этой цели, включая мьютексы, блокировки с "
"ожиданием, условные переменные и счётные семафоры. Однако политики должны "
"быть написаны так, чтобы применять эти примитивы осторожно, соблюдая "
"существующие порядки блокировок в ядре и учитывая, что некоторые точки входа "
"не допускают ожидания, ограничивая использование примитивов в этих точках "
"входа мьютексами и операциями пробуждения."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:172
msgid ""
"When policy modules call out to other kernel subsystems, they will generally "
"need to release any in-policy locks in order to avoid violating the kernel "
"lock order or risking lock recursion.  This will maintain policy locks as "
"leaf locks in the global lock order, helping to avoid deadlock."
msgstr ""
"Когда модули политики обращаются к другим подсистемам ядра, они обычно "
"должны освобождать любые блокировки внутри политики, чтобы избежать "
"нарушения порядка блокировок ядра или риска рекурсивных блокировок. Это "
"позволит сохранить блокировки политики как конечные блокировки в глобальном "
"порядке блокировок, помогая избежать взаимоблокировки."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:174
#, no-wrap
msgid "Policy Registration"
msgstr "Регистрация политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:181
msgid ""
"The MAC Framework maintains two lists of active policies: a static list, and "
"a dynamic list.  The lists differ only with regards to their locking "
"semantics: an elevated reference count is not required to make use of the "
"static list.  When kernel modules containing MAC Framework policies are "
"loaded, the policy module will use `SYSINIT` to invoke a registration "
"function; when a policy module is unloaded, `SYSINIT` will likewise invoke a "
"de-registration function.  Registration may fail if a policy module is "
"loaded more than once, if insufficient resources are available for the "
"registration (for example, the policy might require labeling and "
"insufficient labeling state might be available), or other policy "
"prerequisites might not be met (some policies may only be loaded prior to "
"boot).  Likewise, de-registration may fail if a policy is flagged as not "
"unloadable."
msgstr ""
"Фреймворк MAC поддерживает два списка активных политик: статический список и "
"динамический список. Списки отличаются только в отношении их семантики "
"блокировки: для использования статического списка не требуется повышенный "
"счетчик ссылок. Когда загружаются модули ядра, содержащие политики "
"фреймворка MAC, модуль политики использует `SYSINIT` для вызова функции "
"регистрации; когда модуль политики выгружается, `SYSINIT` аналогично "
"вызывает функцию отмены регистрации. Регистрация может завершиться неудачей, "
"если модуль политики загружается более одного раза, если для регистрации "
"недостаточно ресурсов (например, политика может требовать маркировки, а "
"доступного состояния маркировки может быть недостаточно), или другие "
"предварительные условия политики могут не выполняться (некоторые политики "
"могут быть загружены только до загрузки системы). Аналогично, отмена "
"регистрации может завершиться неудачей, если политика помечена как "
"невыгружаемая."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:183
#, no-wrap
msgid "Entry Points"
msgstr "Точки входа"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:190
msgid ""
"Kernel services interact with the MAC Framework in two ways: they invoke a "
"series of APIs to notify the framework of relevant events, and they provide "
"a policy-agnostic label structure pointer in security-relevant objects.  The "
"label pointer is maintained by the MAC Framework via label management entry "
"points, and permits the Framework to offer a labeling service to policy "
"modules through relatively non-invasive changes to the kernel subsystem "
"maintaining the object.  For example, label pointers have been added to "
"processes, process credentials, sockets, pipes, vnodes, Mbufs, network "
"interfaces, IP reassembly queues, and a variety of other security-relevant "
"structures.  Kernel services also invoke the MAC Framework when they perform "
"important security decisions, permitting policy modules to augment those "
"decisions based on their own criteria (possibly including data stored in "
"security labels).  Most of these security critical decisions will be "
"explicit access control checks; however, some affect more general decision "
"functions such as packet matching for sockets and label transition at "
"program execution."
msgstr ""
"Ядро взаимодействует с MAC Framework двумя способами: вызывает набор API для "
"уведомления фреймворка о соответствующих событиях и предоставляет указатель "
"на структуру меток, не зависящую от политики, в объектах, связанных с "
"безопасностью. Указатель метки управляется MAC Framework через точки входа "
"управления метками, что позволяет фреймворку предоставлять службу маркировки "
"модулям политик с относительно минимальными изменениями в подсистеме ядра, "
"управляющей объектом. Например, указатели меток были добавлены к процессам, "
"учётным данным процессов, сокетам, каналам, vnode, Mbuf, сетевым "
"интерфейсам, очередям сборки IP-пакетов и множеству других структур, "
"связанных с безопасностью. Ядро также вызывает MAC Framework при принятии "
"важных решений по безопасности, позволяя модулям политик дополнять эти "
"решения на основе собственных критериев (включая, возможно, данные, "
"хранящиеся в метках безопасности). Большинство этих критически важных "
"решений по безопасности будут явными проверками контроля доступа; однако "
"некоторые влияют на более общие функции принятия решений, такие как "
"сопоставление пакетов для сокетов и переход меток при выполнении программы."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:192
#, no-wrap
msgid "Policy Composition"
msgstr "Композиция политик"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:200
msgid ""
"When more than one policy module is loaded into the kernel at a time, the "
"results of the policy modules will be composed by the framework using a "
"composition operator.  This operator is currently hard-coded, and requires "
"that all active policies must approve a request for it to return success.  "
"As policies may return a variety of error conditions (success, access "
"denied, object does not exist, ...), a precedence operator selects the "
"resulting error from the set of errors returned by policies.  In general, "
"errors indicating that an object does not exist will be preferred to errors "
"indicating that access to an object is denied.  While it is not guaranteed "
"that the resulting composition will be useful or secure, we have found that "
"it is for many useful selections of policies.  For example, traditional "
"trusted systems often ship with two or more policies using a similar "
"composition."
msgstr ""
"Когда в ядро загружено более одного модуля политики одновременно, результаты "
"работы модулей политики будут объединены фреймворком с использованием "
"оператора композиции. Этот оператор в настоящее время жёстко закодирован и "
"требует, чтобы все активные политики одобрили запрос для возврата успешного "
"результата. Поскольку политики могут возвращать различные условия ошибки ("
"успех, доступ запрещён, объект не существует, ...), оператор старшинства "
"выбирает результирующую ошибку из набора ошибок, возвращаемых политиками. В "
"общем случае, ошибки, указывающие на то, что объект не существует, будут "
"предпочтительнее ошибок, указывающих на запрет доступа к объекту. Хотя не "
"гарантируется, что результирующая композиция будет полезной или безопасной, "
"мы обнаружили, что это так для многих полезных наборов политик. Например, "
"традиционные доверенные системы часто поставляются с двумя или более "
"политиками, использующими аналогичную композицию."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:202
#, no-wrap
msgid "Labeling Support"
msgstr "Поддержка меток"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:208
msgid ""
"As many interesting access control extensions rely on security labels on "
"objects, the MAC Framework provides a set of policy-agnostic label "
"management system calls covering a variety of user-exposed objects.  Common "
"label types include partition identifiers, sensitivity labels, integrity "
"labels, compartments, domains, roles, and types.  By policy agnostic, we "
"mean that policy modules are able to completely define the semantics of meta-"
"data associated with an object.  Policy modules participate in the "
"internalization and externalization of string-based labels provides by user "
"applications, and can expose multiple label elements to applications if "
"desired."
msgstr ""
"Поскольку многие интересные расширения контроля доступа зависят от меток "
"безопасности объектов, MAC Framework предоставляет набор системных вызовов "
"для управления метками, не зависящих от политик, охватывающих различные "
"объекты, доступные пользователю. Общие типы меток включают идентификаторы "
"разделов, метки конфиденциальности, метки целостности, компартменты "
"(compartment), домены, роли и типы. Под \"не зависящими от политик\" "
"подразумевается, что модули политик могут полностью определять семантику "
"метаданных, связанных с объектом. Модули политик участвуют в интернализации "
"и экстернализации строковых меток, предоставляемых пользовательскими "
"приложениями, и могут при необходимости предоставлять приложениям несколько "
"элементов меток."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:216
msgid ""
"In-memory labels are stored in slab-allocated `struct label`, which consists "
"of a fixed-length array of unions, each holding a `void *` pointer and a "
"`long`.  Policies registering for label storage will be assigned a \"slot\" "
"identifier, which may be used to dereference the label storage.  The "
"semantics of the storage are left entirely up to the policy module: modules "
"are provided with a variety of entry points associated with the kernel "
"object life cycle, including initialization, association/creation, and "
"destruction.  Using these interfaces, it is possible to implement reference "
"counting and other storage models.  Direct access to the object structure is "
"generally not required by policy modules to retrieve a label, as the MAC "
"Framework generally passes both a pointer to the object and a direct pointer "
"to the object's label into entry points.  The primary exception to this rule "
"is the process credential, which must be manually dereferenced to access the "
"credential label.  This may change in future revisions of the MAC Framework."
msgstr ""
"Метки в памяти хранятся в `struct label`, выделяемой через slab-аллокатор. "
"Эта структура состоит из массива фиксированной длины, содержащего "
"объединения, каждое из которых хранит указатель `void *` и значение типа "
"`long`. Политикам, регистрирующим хранилище меток, назначается идентификатор "
"\"слота\", который может использоваться для разыменования хранилища меток. "
"Семантика хранилища полностью определяется модулем политики: модулям "
"предоставляется набор точек входа, связанных с жизненным циклом объектов "
"ядра, включая инициализацию, связывание/создание и уничтожение. Используя "
"эти интерфейсы, можно реализовать подсчёт ссылок и другие модели хранения. "
"Прямой доступ к структуре объекта, как правило, не требуется модулям "
"политики для получения метки, поскольку MAC Framework обычно передаёт в "
"точки входа как указатель на объект, так и прямой указатель на метку "
"объекта. Основным исключением из этого правила являются учётные данные "
"процесса, для доступа к метке которых требуется ручное разыменование. Это "
"может измениться в будущих версиях MAC Framework."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:223
msgid ""
"Initialization entry points frequently include a sleeping disposition flag "
"indicating whether or not an initialization is permitted to sleep; if "
"sleeping is not permitted, a failure may be returned to cancel allocation of "
"the label (and hence object).  This may occur, for example, in the network "
"stack during interrupt handling, where sleeping is not permitted, or while "
"the caller holds a mutex.  Due to the performance cost of maintaining labels "
"on in-flight network packets (Mbufs), policies must specifically declare a "
"requirement that Mbuf labels be allocated.  Dynamically loaded policies "
"making use of labels must be able to handle the case where their init "
"function has not been called on an object, as objects may already exist when "
"the policy is loaded.  The MAC Framework guarantees that uninitialized label "
"slots will hold a 0 or NULL value, which policies may use to detect "
"uninitialized values.  However, as allocation of Mbuf labels is conditional, "
"policies must also be able to handle a NULL label pointer for Mbufs if they "
"have been loaded dynamically."
msgstr ""
"Входные точки инициализации часто включают флаг режима сна, указывающий, "
"разрешено ли инициализации переходить в режим сна; если сон не разрешен, "
"может быть возвращена ошибка для отмены выделения метки (и, следовательно, "
"объекта). Это может произойти, например, в сетевом стеке во время обработки "
"прерывания, где сон не разрешен, или пока вызывающий удерживает мьютекс. Из-"
"за затрат производительности на поддержание меток на передаваемых сетевых "
"пакетах (Mbuf), политики должны явно объявлять требование о выделении меток "
"для Mbuf. Динамически загружаемые политики, использующие метки, должны быть "
"способны обрабатывать случай, когда их функция инициализации не была вызвана "
"для объекта, так как объекты могут уже существовать при загрузке политики. "
"MAC Framework гарантирует, что неинициализированные слоты меток будут "
"содержать значение 0 или NULL, что политики могут использовать для "
"обнаружения неинициализированных значений. Однако, поскольку выделение меток "
"для Mbuf условно, политики также должны быть способны обрабатывать указатель "
"на метку NULL для Mbuf, если они были загружены динамически."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:229
msgid ""
"In the case of file system labels, special support is provided for the "
"persistent storage of security labels in extended attributes.  Where "
"available, extended attribute transactions are used to permit consistent "
"compound updates of security labels on vnodes--currently this support is "
"present only in the UFS2 file system.  Policy authors may choose to "
"implement multilabel file system object labels using one (or more) extended "
"attributes.  For efficiency reasons, the vnode label (`v_label`) is a cache "
"of any on-disk label; policies are able to load values into the cache when "
"the vnode is instantiated, and update the cache as needed.  As a result, the "
"extended attribute need not be directly accessed with every access control "
"check."
msgstr ""
"В случае меток файловых систем предусмотрена специальная поддержка для "
"постоянного хранения меток безопасности в расширенных атрибутах. Там, где "
"это возможно, используются транзакции расширенных атрибутов, чтобы "
"обеспечить согласованные составные обновления меток безопасности на vnode — "
"в настоящее время такая поддержка присутствует только в файловой системе "
"UFS2. Авторы политик могут выбрать реализацию многометочных меток объектов "
"файловой системы с использованием одного (или нескольких) расширенных "
"атрибутов. По соображениям эффективности метка vnode (`v_label`) является "
"кэшем любой метки на диске; политики могут загружать значения в кэш при "
"создании vnode и обновлять кэш по мере необходимости. В результате нет "
"необходимости напрямую обращаться к расширенному атрибуту при каждой "
"проверке контроля доступа."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:233
msgid ""
"Currently, if a labeled policy permits dynamic unloading, its state slot "
"cannot be reclaimed, which places a strict (and relatively low) bound on the "
"number of unload-reload operations for labeled policies."
msgstr ""
"В настоящее время, если помеченная политика разрешает динамическую выгрузку, "
"её слот состояния не может быть освобождён, что накладывает строгое (и "
"относительно низкое) ограничение на количество операций выгрузки-"
"перезагрузки для помеченных политик."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:236
#, no-wrap
msgid "System Calls"
msgstr "Системные вызовы"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:239
msgid ""
"The MAC Framework implements a number of system calls: most of these calls "
"support the policy-agnostic label retrieval and manipulation APIs exposed to "
"user applications."
msgstr ""
"В рамках MAC Framework реализован ряд системных вызовов: большинство из них "
"поддерживают API для получения и управления метками, не зависящий от "
"политики и доступный пользовательским приложениям."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:245
msgid ""
"The label management calls accept a label description structure, `struct "
"mac`, which contains a series of MAC label elements.  Each element contains "
"a character string name, and character string value.  Each policy will be "
"given the chance to claim a particular element name, permitting policies to "
"expose multiple independent elements if desired.  Policy modules perform the "
"internalization and externalization between kernel labels and user-provided "
"labels via entry points, permitting a variety of semantics.  Label "
"management system calls are generally wrapped by user library functions to "
"perform memory allocation and error handling, simplifying user applications "
"that must manage labels."
msgstr ""
"Вызовы управления метками принимают структуру описания метки `struct mac`, "
"которая содержит серию элементов метки MAC. Каждый элемент содержит строку с "
"именем и строку со значением. Каждой политике будет предоставлена "
"возможность запросить определённое имя элемента, позволяя политикам "
"предоставлять несколько независимых элементов, если это необходимо. Модули "
"политик выполняют интернализацию и экстернализацию между метками ядра и "
"метками, предоставленными пользователем, через точки входа, что позволяет "
"использовать различные семантики. Системные вызовы управления метками обычно "
"обёрнуты в функции пользовательской библиотеки для выполнения выделения "
"памяти и обработки ошибок, упрощая пользовательские приложения, которые "
"должны управлять метками."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:247
msgid ""
"The following MAC-related system calls are present in the FreeBSD kernel:"
msgstr "В ядре FreeBSD есть следующие системные вызовы, связанные с MAC:"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:249
msgid ""
"`mac_get_proc()` may be used to retrieve the label of the current process."
msgstr ""
"`mac_get_proc()` может использоваться для получения метки текущего процесса."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:250
msgid ""
"`mac_set_proc()` may be used to request a change in the label of the current "
"process."
msgstr ""
"`mac_set_proc()` может использоваться, чтобы запросить изменение метки "
"текущего процесса."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:251
msgid ""
"`mac_get_fd()` may be used to retrieve the label of an object (file, socket, "
"pipe, ...) referenced by a file descriptor."
msgstr ""
"`mac_get_fd()` может использоваться для получения метки объекта (файл, "
"сокет, канал, ...), на который ссылается файловый дескриптор."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:252
msgid ""
"`mac_get_file()` may be used to retrieve the label of an object referenced "
"by a file system path."
msgstr ""
"`mac_get_file()` может использоваться для получения метки объекта, на "
"который ссылается путь в файловой системе."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:253
msgid ""
"`mac_set_fd()` may be used to request a change in the label of an object "
"(file, socket, pipe, ...) referenced by a file descriptor."
msgstr ""
"`mac_set_fd()` может использоваться для запроса изменения метки объекта ("
"файл, сокет, канал, ...), на который ссылается файловый дескриптор."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:254
msgid ""
"`mac_set_file()` may be used to request a change in the label of an object "
"referenced by a file system path."
msgstr ""
"`mac_set_file()` может использоваться для запроса изменения метки объекта, "
"указанного по пути в файловой системе."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:255
msgid ""
"`mac_syscall()` permits policy modules to create new system calls without "
"modifying the system call table; it accepts a target policy name, operation "
"number, and opaque argument for use by the policy."
msgstr ""
"`mac_syscall()` позволяет модулям политик создавать новые системные вызовы "
"без изменения таблицы системных вызовов; она принимает имя целевой политики, "
"номер операции и непрозрачный аргумент для использования политикой."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:256
msgid ""
"`mac_get_pid()` may be used to request the label of another process by "
"process id."
msgstr ""
"`mac_get_pid()` может использоваться для запроса метки другого процесса по "
"его идентификатору."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:257
msgid ""
"`mac_get_link()` is identical to `mac_get_file()`, only it will not follow a "
"symbolic link if it is the final entry in the path, so may be used to "
"retrieve the label on a symlink."
msgstr ""
"`mac_get_link()` идентична `mac_get_file()`, но не переходит по "
"символической ссылке, если она является конечным элементом пути, поэтому "
"может использоваться для получения метки на символьной ссылке."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:258
msgid ""
"`mac_set_link()` is identical to `mac_set_file()`, only it will not follow a "
"symbolic link if it is the final entry in a path, so may be used to "
"manipulate the label on a symlink."
msgstr ""
"`mac_set_link()` идентична `mac_set_file()`, за исключением того, что она не "
"следует по символической ссылке, если это конечный элемент пути, поэтому "
"может использоваться для изменения метки на символьной ссылке."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:260
msgid ""
"`mac_execve()` is identical to the `execve()` system call, only it also "
"accepts a requested label to set the process label to when beginning "
"execution of a new program.  This change in label on execution is referred "
"to as a \"transition\"."
msgstr ""
"`mac_execve()` идентична системному вызову `execve()`, но также принимает "
"запрошенную метку, которая будет установлена для процесса при начале "
"выполнения новой программы. Это изменение метки при выполнении называется "
"\"переходом\"."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:261
msgid ""
"`mac_get_peer()`, actually implemented via a socket option, retrieves the "
"label of a remote peer on a socket, if available."
msgstr ""
"`mac_get_peer()`, фактически реализованный через параметр сокета, извлекает "
"метку удалённого узла на сокете, если она доступна."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:263
msgid ""
"In addition to these system calls, the `SIOCSIGMAC` and `SIOCSIFMAC` network "
"interface ioctls permit the labels on network interfaces to be retrieved and "
"set."
msgstr ""
"В дополнение к этим системным вызовам, сетевые ioctl-команды `SIOCSIGMAC` и "
"`SIOCSIFMAC` позволяют получать и устанавливать метки на сетевых интерфейсах."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:265
#, no-wrap
msgid "MAC Policy Architecture"
msgstr "Архитектура политик MAC"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:270
msgid ""
"Security policies are either linked directly into the kernel, or compiled "
"into loadable kernel modules that may be loaded at boot, or dynamically "
"using the module loading system calls at runtime.  Policy modules interact "
"with the system through a set of declared entry points, providing access to "
"a stream of system events and permitting the policy to influence access "
"control decisions.  Each policy contains a number of elements:"
msgstr ""
"Политики безопасности либо непосредственно встроены в ядро, либо "
"скомпилированы в загружаемые модули ядра, которые могут быть загружены при "
"загрузке системы или динамически с использованием системных вызовов загрузки "
"модулей во время выполнения. Модули политик взаимодействуют с системой через "
"набор объявленных точек входа, предоставляя доступ к потоку системных "
"событий и позволяя политике влиять на решения контроля доступа. Каждая "
"политика содержит ряд элементов:"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:272
msgid "Optional configuration parameters for policy."
msgstr "Необязательные параметры конфигурации для политики."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:273
msgid "Centralized implementation of the policy logic and parameters."
msgstr "Централизованная реализация логики политики и параметров."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:274
msgid ""
"Optional implementation of policy life cycle events, such as initialization "
"and destruction."
msgstr ""
"Необязательная реализация событий жизненного цикла политики, таких как "
"инициализация и уничтожение."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:275
msgid ""
"Optional support for initializing, maintaining, and destroying labels on "
"selected kernel objects."
msgstr ""
"Необязательная поддержка инициализации, обслуживания и удаления меток на "
"выбранных объектах ядра."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:276
msgid ""
"Optional support for user process inspection and modification of labels on "
"selected objects."
msgstr ""
"Дополнительная поддержка проверки процессов пользователя и изменения меток "
"на выбранных объектах."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:277
msgid ""
"Implementation of selected access control entry points that are of interest "
"to the policy."
msgstr ""
"Реализация выбранных точек входа контроля доступа, представляющих интерес "
"для политики."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:278
msgid ""
"Declaration of policy identity, module entry points, and policy properties."
msgstr ""
"Объявление идентификатора политики, точек входа модуля и свойств политики."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:280
#, no-wrap
msgid "Policy Declaration"
msgstr "Объявление политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:283
msgid ""
"Modules may be declared using the `MAC_POLICY_SET()` macro, which names the "
"policy, provides a reference to the MAC entry point vector, provides load-"
"time flags determining how the policy framework should handle the policy, "
"and optionally requests the allocation of label state by the framework."
msgstr ""
"Модули могут быть объявлены с использованием макроса `MAC_POLICY_SET()`, "
"который задаёт имя политики, предоставляет ссылку на вектор точек входа MAC, "
"указывает флаги загрузки, определяющие, как фреймворк политик должен "
"обрабатывать политику, и при необходимости запрашивает выделение состояния "
"метки фреймворком."

#. type: delimited block . 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:297
#, no-wrap
msgid ""
"static struct mac_policy_ops mac_policy_ops =\n"
"{\n"
"        .mpo_destroy = mac_policy_destroy,\n"
"        .mpo_init = mac_policy_init,\n"
"        .mpo_init_bpfdesc_label = mac_policy_init_bpfdesc_label,\n"
"        .mpo_init_cred_label = mac_policy_init_label,\n"
"/* ... */\n"
"        .mpo_check_vnode_setutimes = mac_policy_check_vnode_setutimes,\n"
"        .mpo_check_vnode_stat = mac_policy_check_vnode_stat,\n"
"        .mpo_check_vnode_write = mac_policy_check_vnode_write,\n"
"};\n"
msgstr ""
"static struct mac_policy_ops mac_policy_ops =\n"
"{\n"
"        .mpo_destroy = mac_policy_destroy,\n"
"        .mpo_init = mac_policy_init,\n"
"        .mpo_init_bpfdesc_label = mac_policy_init_bpfdesc_label,\n"
"        .mpo_init_cred_label = mac_policy_init_label,\n"
"/* ... */\n"
"        .mpo_check_vnode_setutimes = mac_policy_check_vnode_setutimes,\n"
"        .mpo_check_vnode_stat = mac_policy_check_vnode_stat,\n"
"        .mpo_check_vnode_write = mac_policy_check_vnode_write,\n"
"};\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:302
msgid ""
"The MAC policy entry point vector, `mac__policy__ops` in this example, "
"associates functions defined in the module with specific entry points.  A "
"complete listing of available entry points and their prototypes may be found "
"in the MAC entry point reference section.  Of specific interest during "
"module registration are the .mpo_destroy and .mpo_init entry points."
msgstr ""
"Вектор точек входа политики MAC, `mac__policy__ops` в данном примере, "
"связывает функции, определённые в модуле, с конкретными точками входа. "
"Полный список доступных точек входа и их прототипов можно найти в разделе "
"справочника по точкам входа MAC. Особый интерес при регистрации модуля "
"представляют точки входа .mpo_destroy и .mpo_init."

#. type: Block title
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:302
#, no-wrap
msgid "mpo_init will be invoked once a policy is successfully registered with the module framework but prior to any other entry points becoming active."
msgstr ""
"mpo_init будет вызван после успешной регистрации политики в модульной "
"системе, но до активации других точек входа."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:304
msgid ""
"This permits the policy to perform any policy-specific allocation and "
"initialization, such as initialization of any data or locks."
msgstr ""
"Это позволяет политике выполнять любые выделения и инициализации, "
"специфичные для данной политики, такие как инициализация данных или "
"блокировок."

#. type: Block title
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:304
#, no-wrap
msgid "mpo_destroy will be invoked when a policy module is unloaded to permit releasing of any allocated memory and destruction of locks."
msgstr ""
"mpo_destroy будет вызван при выгрузке модуля политики для освобождения "
"выделенной памяти и уничтожения блокировок."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:306
msgid ""
"Currently, these two entry points are invoked with the MAC policy list mutex "
"held to prevent any other entry points from being invoked: this will be "
"changed, but in the mean time, policies should be careful about what kernel "
"primitives they invoke so as to avoid lock ordering or sleeping problems."
msgstr ""
"В настоящее время эти две точки входа вызываются с удержанием мьютекса "
"списка политик MAC, чтобы предотвратить вызов других точек входа: это будет "
"изменено, но до тех пор политики должны быть осторожны с используемыми "
"примитивами ядра, чтобы избежать проблем с порядком блокировок или сном."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:310
msgid ""
"The policy declaration's module name field exists so that the module may be "
"uniquely identified for the purposes of module dependencies.  An appropriate "
"string should be selected.  The full string name of the policy is displayed "
"to the user via the kernel log during load and unload events, and also "
"exported when providing status information to userland processes."
msgstr ""
"Поле имени модуля в объявлении политики существует для того, чтобы модуль "
"мог быть однозначно идентифицирован с целью управления зависимостями "
"модулей. Следует выбрать подходящую строку. Полное имя политики отображается "
"пользователю в журнале ядра при загрузке и выгрузке, а также экспортируется "
"при предоставлении информации о статусе процессам в пользовательском "
"пространстве."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:312
#, no-wrap
msgid "Policy Flags"
msgstr "Флаги политик"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:316
msgid ""
"The policy declaration flags field permits the module to provide the "
"framework with information about its capabilities at the time the module is "
"loaded.  Currently, three flags are defined:"
msgstr ""
"Поле флагов объявления политики позволяет модулю предоставлять фреймворку "
"информацию о своих возможностях во время загрузки модуля. В настоящее время "
"определены три флага:"

#. type: Labeled list
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:317
#, no-wrap
msgid "MPC_LOADTIME_FLAG_UNLOADOK"
msgstr "MPC_LOADTIME_FLAG_UNLOADOK"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:321
msgid ""
"This flag indicates that the policy module may be unloaded.  If this flag is "
"not provided, then the policy framework will reject requests to unload the "
"module.  This flag might be used by modules that allocate label state and "
"are unable to free that state at runtime."
msgstr ""
"Этот флаг указывает, что модуль политики может быть выгружен. Если этот флаг "
"не указан, то фреймворк политики отклонит запросы на выгрузку модуля. Этот "
"флаг может использоваться модулями, которые выделяют состояние метки и не "
"могут освободить это состояние во время выполнения."

#. type: Labeled list
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:322
#, no-wrap
msgid "MPC_LOADTIME_FLAG_NOTLATE"
msgstr "MPC_LOADTIME_FLAG_NOTLATE"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:326
msgid ""
"This flag indicates that the policy module must be loaded and initialized "
"early in the boot process.  If the flag is specified, attempts to register "
"the module following boot will be rejected.  The flag may be used by "
"policies that require pervasive labeling of all system objects, and cannot "
"handle objects that have not been properly initialized by the policy."
msgstr ""
"Этот флаг указывает, что модуль политики должен быть загружен и "
"инициализирован на раннем этапе процесса загрузки. Если флаг указан, попытки "
"зарегистрировать модуль после загрузки будут отклонены. Флаг может "
"использоваться политиками, которые требуют повсеместной маркировки всех "
"системных объектов и не могут обрабатывать объекты, не прошедшие надлежащую "
"инициализацию политикой."

#. type: Labeled list
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:327
#, no-wrap
msgid "MPC_LOADTIME_FLAG_LABELMBUFS"
msgstr "MPC_LOADTIME_FLAG_LABELMBUFS"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:332
msgid ""
"This flag indicates that the policy module requires labeling of Mbufs, and "
"that memory should always be allocated for the storage of Mbuf labels.  By "
"default, the MAC Framework will not allocate label storage for Mbufs unless "
"at least one loaded policy has this flag set.  This measurably improves "
"network performance when policies do not require Mbuf labeling.  A kernel "
"option, `MAC_ALWAYS_LABEL_MBUF`, exists to force the MAC Framework to "
"allocate Mbuf label storage regardless of the setting of this flag, and may "
"be useful in some environments."
msgstr ""
"Этот флаг указывает, что модуль политики требует маркировки Mbuf, и память "
"всегда должна выделяться для хранения меток Mbuf. По умолчанию MAC Framework "
"не выделяет память для хранения меток Mbuf, если хотя бы одна загруженная "
"политика не установила этот флаг. Это заметно улучшает производительность "
"сети, когда политики не требуют маркировки Mbuf. Существует опция ядра "
"`MAC_ALWAYS_LABEL_MBUF`, которая заставляет MAC Framework выделять память "
"для хранения меток Mbuf независимо от установки этого флага, и может быть "
"полезной в некоторых средах."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:338
msgid ""
"Policies using the `MPC_LOADTIME_FLAG_LABELMBUFS` without the "
"`MPC_LOADTIME_FLAG_NOTLATE` flag set must be able to correctly handle `NULL` "
"Mbuf label pointers passed into entry points.  This is necessary as in-"
"flight Mbufs without label storage may persist after a policy enabling Mbuf "
"labeling has been loaded.  If a policy is loaded before the network "
"subsystem is active (i.e., the policy is not being loaded late), then all "
"Mbufs are guaranteed to have label storage."
msgstr ""
"Политики, использующие `MPC_LOADTIME_FLAG_LABELMBUFS` без установленного "
"флага `MPC_LOADTIME_FLAG_NOTLATE`, должны корректно обрабатывать переданные "
"`NULL` указатели меток Mbuf в точках входа. Это необходимо, так как Mbuf в "
"процессе передачи без хранилища меток могут сохраняться после загрузки "
"политики, включающей маркировку Mbuf. Если политика загружена до активации "
"сетевой подсистемы (т.е. политика не загружается поздно), то все Mbuf "
"гарантированно имеют хранилище меток."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:341
#, no-wrap
msgid "Policy Entry Points"
msgstr "Точки входа политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:345
msgid ""
"Four classes of entry points are offered to policies registered with the "
"framework: entry points associated with the registration and management of "
"policies, entry points denoting initialization, creation, destruction, and "
"other life cycle events for kernel objects, events associated with access "
"control decisions that the policy module may influence, and calls associated "
"with the management of labels on objects.  In addition, a `mac_syscall()` "
"entry point is provided so that policies may extend the kernel interface "
"without registering new system calls."
msgstr ""
"Четыре класса точек входа предоставляются политикам, зарегистрированным в "
"рамках системы: точки входа, связанные с регистрацией и управлением "
"политиками, точки входа, обозначающие инициализацию, создание, уничтожение и "
"другие события жизненного цикла объектов ядра, события, связанные с "
"решениями контроля доступа, на которые политика может влиять, и вызовы, "
"связанные с управлением метками на объектах. Кроме того, предоставляется "
"точка входа `mac_syscall()`, позволяющая политикам расширять интерфейс ядра "
"без регистрации новых системных вызовов."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:350
msgid ""
"Policy module writers should be aware of the kernel locking strategy, as "
"well as what object locks are available during which entry points.  Writers "
"should attempt to avoid deadlock scenarios by avoiding grabbing non-leaf "
"locks inside of entry points, and also follow the locking protocol for "
"object access and modification.  In particular, writers should be aware that "
"while necessary locks to access objects and their labels are generally held, "
"sufficient locks to modify an object or its label may not be present for all "
"entry points.  Locking information for arguments is documented in the MAC "
"framework entry point document."
msgstr ""
"Авторы модулей политик должны быть осведомлены о стратегии блокировок в "
"ядре, а также о том, какие блокировки объектов доступны на различных точках "
"входа. Им следует избегать сценариев взаимоблокировок, не захватывая "
"нелистовые блокировки внутри точек входа, а также соблюдать протокол "
"блокировок для доступа и изменения объектов. В частности, авторы должны "
"учитывать, что хотя необходимые блокировки для доступа к объектам и их "
"меткам обычно удерживаются, достаточные блокировки для изменения объекта или "
"его метки могут отсутствовать для всех точек входа. Информация о блокировках "
"аргументов документирована в описании точек входа фреймворка MAC."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:354
msgid ""
"Policy entry points will pass a reference to the object label along with the "
"object itself.  This permits labeled policies to be unaware of the internals "
"of the object yet still make decisions based on the label.  The exception to "
"this is the process credential, which is assumed to be understood by "
"policies as a first class security object in the kernel."
msgstr ""
"Точки входа политики будут передавать ссылку на метку объекта вместе с самим "
"объектом. Это позволяет помеченным политикам не знать внутренней структуры "
"объекта, но при этом принимать решения на основе метки. Исключением из этого "
"являются учётные данные процесса, для которые предполагается, что политики "
"понимают их, как объект безопасности первого класса в ядре."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:356
#, no-wrap
msgid "MAC Policy Entry Point Reference"
msgstr "Справочник по точкам входа политики MAC"

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:359
#, no-wrap
msgid "General-Purpose Module Entry Points"
msgstr "Общие точки входа модуля"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:362
#, no-wrap
msgid "`mpo_init`"
msgstr "`mpo_init`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:367
#, no-wrap
msgid "void mpo_init(struct mac_policy_conf *conf);\n"
msgstr "void mpo_init(struct mac_policy_conf *conf);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:373
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:397
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:420
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:458
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:487
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:510
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:533
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:556
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:579
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:608
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:637
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:664
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:687
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:710
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:737
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:764
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:787
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:810
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:833
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:856
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:879
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:902
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:925
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:948
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:971
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:998
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1021
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1044
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1067
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1090
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1113
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1139
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1165
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1192
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1232
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1272
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1312
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1352
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1392
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1432
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1469
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1506
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1543
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1580
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1665
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1708
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1746
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1781
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1813
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1846
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1890
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1943
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1979
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2001
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2036
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2072
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2112
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2148
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2180
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2213
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2248
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2283
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2318
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2355
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2394
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2425
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2453
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2488
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2523
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2558
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2594
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2630
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2666
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2702
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2746
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2782
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2820
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2855
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2892
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2922
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2960
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2992
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3014
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3036
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3096
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3131
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3153
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3179
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3205
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3232
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3262
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3284
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3307
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3346
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3377
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3408
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3443
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3474
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3505
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3538
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3575
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3606
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3636
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3666
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3695
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3730
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3764
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3791
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3826
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3859
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3889
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3927
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3960
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3991
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4034
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4081
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4118
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4152
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4189
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4236
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4279
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4314
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4349
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4380
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4416
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4460
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4508
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4541
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4578
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4615
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4648
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4682
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4715
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4756
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4804
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4841
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4878
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4920
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4960
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4990
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5023
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5058
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5099
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5140
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5173
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5203
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5225
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5251
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5274
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5305
#, no-wrap
msgid "Parameter"
msgstr "Параметр"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:374
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:398
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:421
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:459
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:488
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:511
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:534
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:557
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:580
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:609
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:638
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:665
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:688
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:711
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:738
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:765
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:788
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:811
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:834
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:857
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:880
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:903
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:926
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:949
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:972
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:999
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1022
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1045
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1068
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1091
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1114
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1140
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1166
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1193
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1233
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1273
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1313
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1353
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1393
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1433
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1470
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1507
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1544
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1581
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1666
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1709
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1747
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1782
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1814
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1847
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1891
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1944
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1980
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2002
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2037
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2073
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2113
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2149
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2181
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2214
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2249
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2284
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2319
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2356
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2395
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2426
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2454
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2489
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2524
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2559
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2595
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2631
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2667
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2703
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2747
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2783
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2821
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2856
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2893
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2923
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2961
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2993
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3015
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3037
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3097
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3132
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3154
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3180
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3206
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3233
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3263
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3285
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3308
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3347
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3378
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3409
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3444
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3475
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3506
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3539
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3576
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3607
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3637
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3667
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3696
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3731
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3765
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3792
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3827
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3860
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3890
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3928
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3961
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3992
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4035
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4082
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4119
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4153
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4190
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4237
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4280
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4315
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4350
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4381
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4417
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4461
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4509
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4542
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4579
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4616
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4649
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4683
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4716
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4757
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4805
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4842
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4879
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4921
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4961
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4991
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5024
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5059
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5100
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5141
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5174
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5204
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5226
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5252
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5275
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5306
#, no-wrap
msgid "Description"
msgstr "Описание"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:376
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:400
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:423
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:461
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:490
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:513
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:536
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:559
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:582
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:611
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:640
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:667
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:690
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:713
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:740
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:767
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:790
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:813
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:836
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:859
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:882
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:905
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:928
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:951
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:974
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1001
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1024
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1047
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1070
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1093
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1116
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1142
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1168
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1195
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1235
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1275
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1315
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1355
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1395
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1435
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1472
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1509
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1546
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1583
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1668
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1711
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1749
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1784
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1816
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1849
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1893
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1946
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1982
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2004
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2039
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2075
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2115
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2151
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2183
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2216
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2251
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2286
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2321
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2358
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2397
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2428
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2456
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2491
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2526
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2561
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2597
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2633
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2669
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2705
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2749
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2785
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2823
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2858
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2895
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2925
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2963
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2995
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3017
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3039
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3099
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3134
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3156
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3182
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3208
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3235
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3265
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3287
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3310
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3349
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3380
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3411
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3446
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3477
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3508
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3541
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3578
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3609
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3639
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3669
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3698
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3733
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3767
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3794
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3829
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3862
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3892
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3930
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3963
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3994
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4037
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4084
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4121
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4155
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4192
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4239
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4282
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4317
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4352
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4383
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4419
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4463
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4511
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4544
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4581
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4618
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4651
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4685
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4718
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4759
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4807
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4844
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4881
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4923
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4963
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4993
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5026
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5061
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5102
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5143
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5176
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5206
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5228
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5254
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5277
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5308
#, no-wrap
msgid "Locking"
msgstr "Блокировка"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:377
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:401
#, no-wrap
msgid "`conf`"
msgstr "`conf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:378
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:402
#, no-wrap
msgid "MAC policy definition"
msgstr "Определение политики MAC"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:384
msgid ""
"Policy load event.  The policy list mutex is held, so sleep operations "
"cannot be performed, and calls out to other kernel subsystems must be made "
"with caution.  If potentially sleeping memory allocations are required "
"during policy initialization, they should be made using a separate module "
"SYSINIT()."
msgstr ""
"Событие загрузки политики. Мьютекс списка политик удерживается, поэтому "
"операции ожидания выполнить нельзя, а вызовы других подсистем ядра должны "
"осуществляться с осторожностью. Если во время инициализации политики "
"требуются потенциально блокирующие выделения памяти, их следует выполнять с "
"использованием отдельного модуля SYSINIT()."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:386
#, no-wrap
msgid "`mpo_destroy`"
msgstr "`mpo_destroy`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:391
#, no-wrap
msgid "void mpo_destroy(struct mac_policy_conf *conf);\n"
msgstr "void mpo_destroy(struct mac_policy_conf *conf);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:407
msgid ""
"Policy load event.  The policy list mutex is held, so caution should be "
"applied."
msgstr ""
"Событие загрузки политики. Мьютекс списка политик удерживается, поэтому "
"следует соблюдать осторожность."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:409
#, no-wrap
msgid "`mpo_syscall`"
msgstr "`mpo_syscall`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:414
#, no-wrap
msgid "int mpo_syscall(struct thread *td, int call, void *arg);\n"
msgstr "int mpo_syscall(struct thread *td, int call, void *arg);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:424
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:462
#, no-wrap
msgid "`td`"
msgstr "`td`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:425
#, no-wrap
msgid "Calling thread"
msgstr "Вызывающий поток"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:428
#, no-wrap
msgid "`call`"
msgstr "`call`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:429
#, no-wrap
msgid "Policy-specific syscall number"
msgstr "Номер системного вызова, зависящий от политики"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:432
#, no-wrap
msgid "`arg`"
msgstr "`arg`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:433
#, no-wrap
msgid "Pointer to syscall arguments"
msgstr "Указатель на аргументы системного вызова"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:440
msgid ""
"This entry point provides a policy-multiplexed system call so that policies "
"may provide additional services to user processes without registering "
"specific system calls.  The policy name provided during registration is used "
"to demultiplexer calls from userland, and the arguments will be forwarded to "
"this entry point.  When implementing new services, security modules should "
"be sure to invoke appropriate access control checks from the MAC framework "
"as needed.  For example, if a policy implements an augmented signal "
"functionality, it should call the necessary signal access control checks to "
"invoke the MAC framework and other registered policies."
msgstr ""
"Этот точку входа предоставляет мультиплексированный системный вызов на "
"основе политик, что позволяет политикам предоставлять дополнительные сервисы "
"пользовательским процессам без регистрации конкретных системных вызовов. Имя "
"политики, указанное при регистрации, используется для демультиплексирования "
"вызовов из пользовательского пространства, а аргументы будут переданы в эту "
"точку входа. При реализации новых сервисов модули безопасности должны "
"убедиться, что вызывают соответствующие проверки контроля доступа из MAC-"
"фреймворка по мере необходимости. Например, если политика реализует "
"расширенную функциональность сигналов, она должна вызывать необходимые "
"проверки контроля доступа сигналов для задействования MAC-фреймворка и "
"других зарегистрированных политик."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:444
msgid ""
"Modules must currently perform the `copyin()` of the syscall data on their "
"own."
msgstr ""
"Модули в настоящее время должны самостоятельно выполнять `copyin()` для "
"данных системного вызова."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:447
#, no-wrap
msgid "`mpo_thread_userret`"
msgstr "`mpo_thread_userret`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:452
#, no-wrap
msgid "void mpo_thread_userret(struct thread *td);\n"
msgstr "void mpo_thread_userret(struct thread *td);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:463
#, no-wrap
msgid "Returning thread"
msgstr "Возвращающий поток"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:471
msgid ""
"This entry point permits policy modules to perform MAC-related events when a "
"thread returns to user space, via a system call return, trap return, or "
"otherwise.  This is required for policies that have floating process labels, "
"as it is not always possible to acquire the process lock at arbitrary points "
"in the stack during system call processing; process labels might represent "
"traditional authentication data, process history information, or other "
"data.  To employ this mechanism, intended changes to the process credential "
"label may be stored in the `p_label` protected by a per-policy spin lock, "
"and then set the per-thread `TDF_ASTPENDING` flag and per-process "
"`PS_MACPENDM` flag to schedule a call to the `userret` entry point.  From "
"this entry point, the policy may create a replacement credential with less "
"concern about the locking context.  Policy writers are cautioned that event "
"ordering relating to scheduling an AST and the AST being performed may be "
"complex and interlaced in multithreaded applications."
msgstr ""
"Этот точка входа позволяет модулям политики выполнять события, связанные с "
"MAC, когда поток возвращается в пользовательское пространство, через возврат "
"системного вызова, возврат из ловушки или иным образом. Это необходимо для "
"политик, имеющих плавающие метки процессов, так как не всегда возможно "
"получить блокировку процесса в произвольных точках стека во время обработки "
"системного вызова; метки процессов могут представлять традиционные данные "
"аутентификации, информацию об истории процесса или другие данные. Для "
"использования этого механизма предполагаемые изменения метки учётных данных "
"процесса могут быть сохранены в `p_label`, защищённом спин-блокировкой для "
"каждой политики, а затем установить флаг `TDF_ASTPENDING` для потока и флаг "
"`PS_MACPENDM` для процесса, чтобы запланировать вызов точки входа `userret`. "
"С этой точки входа политика может создать замену учётных данных с меньшими "
"опасениями относительно контекста блокировки. Авторам политик следует "
"учитывать, что порядок событий, связанных с планированием AST и выполнением "
"AST, может быть сложным и переплетённым в многопоточных приложениях."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:473
#, no-wrap
msgid "Label Operations"
msgstr "Операции с метками"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:476
#, no-wrap
msgid "`mpo_init_bpfdesc_label`"
msgstr "`mpo_init_bpfdesc_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:481
#, no-wrap
msgid "void mpo_init_bpfdesc_label(struct label *label);\n"
msgstr "void mpo_init_bpfdesc_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:491
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:514
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:537
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:560
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:583
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:616
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:668
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:691
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:714
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:741
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:768
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:791
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:814
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:837
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:860
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:883
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:906
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:929
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:952
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1002
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1048
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1071
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1094
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1196
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1236
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1276
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1316
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1356
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1396
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1436
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1473
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1510
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1547
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1584
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1793
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1902
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3901
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4054
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4093
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4130
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4164
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4201
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4256
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4291
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4326
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4396
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4436
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4480
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4590
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4660
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4694
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4727
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4768
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4816
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4853
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4890
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4932
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5035
#, no-wrap
msgid "`label`"
msgstr "`label`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:492
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:538
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:561
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:584
#, no-wrap
msgid "New label to apply"
msgstr "Новая метка для инициализации"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:497
msgid ""
"Initialize the label on a newly instantiated bpfdesc (BPF descriptor).  "
"Sleeping is permitted."
msgstr ""
"Инициализировать метку на только что созданном bpfdesc (дескрипторе BPF). "
"Разрешено использование режима сна."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:499
#, no-wrap
msgid "`mpo_init_cred_label`"
msgstr "`mpo_init_cred_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:504
#, no-wrap
msgid "void mpo_init_cred_label(struct label *label);\n"
msgstr "void mpo_init_cred_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:515
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:715
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:742
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:769
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:792
#, no-wrap
msgid "New label to initialize"
msgstr "Новая метка для инициализации"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:520
msgid ""
"Initialize the label for a newly instantiated user credential.  Sleeping is "
"permitted."
msgstr ""
"Инициализировать метку для вновь созданных учётных данных пользователя. "
"Разрешено приостанавливать выполнение."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:522
#, no-wrap
msgid "`mpo_init_devfsdirent_label`"
msgstr "`mpo_init_devfsdirent_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:527
#, no-wrap
msgid "void mpo_init_devfsdirent_label(struct label *label);\n"
msgstr "void mpo_init_devfsdirent_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:543
msgid ""
"Initialize the label on a newly instantiated devfs entry.  Sleeping is "
"permitted."
msgstr ""
"Инициализировать метку на только что созданной записи devfs. Разрешено "
"использование режима сна."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:545
#, no-wrap
msgid "`mpo_init_ifnet_label`"
msgstr "`mpo_init_ifnet_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:550
#, no-wrap
msgid "void mpo_init_ifnet_label(struct label *label);\n"
msgstr "void mpo_init_ifnet_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:566
msgid ""
"Initialize the label on a newly instantiated network interface.  Sleeping is "
"permitted."
msgstr ""
"Инициализировать метку на только что созданном сетевом интерфейсе. Разрешено "
"приостанавливать выполнение."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:568
#, no-wrap
msgid "`mpo_init_ipq_label`"
msgstr "`mpo_init_ipq_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:573
#, no-wrap
msgid "void mpo_init_ipq_label(struct label *label, int flag);\n"
msgstr "void mpo_init_ipq_label(struct label *label, int flag);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:587
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:612
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:718
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:745
#, no-wrap
msgid "`flag`"
msgstr "`flag`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:588
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:613
#, no-wrap
msgid "Sleeping/non-sleeping man:malloc[9]; see below"
msgstr "Спящий/неспящий man:malloc[9]; см. ниже"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:595
msgid ""
"Initialize the label on a newly instantiated IP fragment reassembly queue.  "
"The `flag` field may be one of M_WAITOK and M_NOWAIT, and should be employed "
"to avoid performing a sleeping man:malloc[9] during this initialization "
"call.  IP fragment reassembly queue allocation frequently occurs in "
"performance sensitive environments, and the implementation should be careful "
"to avoid sleeping or long-lived operations.  This entry point is permitted "
"to fail resulting in the failure to allocate the IP fragment reassembly "
"queue."
msgstr ""
"Инициализировать метку в только что созданной очереди сборки IP-фрагментов. "
"Поле `flag` может принимать одно из значений M_WAITOK или M_NOWAIT и должно "
"использоваться, чтобы избежать выполнения \"спящего\" man:malloc[9] во время "
"этого вызова инициализации. Выделение очереди сборки IP-фрагментов часто "
"происходит в средах, чувствительных к производительности, и реализация "
"должна избегать \"спящих\" или длительных операций. Этой точке входа "
"разрешено завершаться неудачей, что приведёт к невозможности выделения "
"очереди сборки IP-фрагментов."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:597
#, no-wrap
msgid "`mpo_init_mbuf_label`"
msgstr "`mpo_init_mbuf_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:602
#, no-wrap
msgid "void mpo_init_mbuf_label(int flag, struct label *label);\n"
msgstr "void mpo_init_mbuf_label(int flag, struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:617
#, no-wrap
msgid "Policy label to initialize"
msgstr "Метка политики для инициализации"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:624
msgid ""
"Initialize the label on a newly instantiated mbuf packet header (`mbuf`).  "
"The `flag` field may be one of M_WAITOK and M_NOWAIT, and should be employed "
"to avoid performing a sleeping man:malloc[9] during this initialization "
"call.  Mbuf allocation frequently occurs in performance sensitive "
"environments, and the implementation should be careful to avoid sleeping or "
"long-lived operations.  This entry point is permitted to fail resulting in "
"the failure to allocate the mbuf header."
msgstr ""
"Инициализировать на только что созданном заголовке пакета mbuf метку (`mbuf`)"
". Поле `flag` может принимать одно из значений M_WAITOK или M_NOWAIT и "
"должно использоваться, чтобы избежать выполнения \"спящего\" man:malloc[9] "
"во время этого вызова инициализации. Выделение mbuf часто происходит в "
"чувствительных к производительности средах, и реализация должна избегать "
"\"спящего\" режима или длительных операций. Этой точке входа разрешено "
"завершаться неудачей, что приведёт к невозможности выделения заголовка mbuf."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:626
#, no-wrap
msgid "`mpo_init_mount_label`"
msgstr "`mpo_init_mount_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:631
#, no-wrap
msgid "void mpo_init_mount_label(struct label *mntlabel, struct label *fslabel);\n"
msgstr ""
"void mpo_init_mount_label(struct label *mntlabel, struct label *fslabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:641
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:975
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1955
#, no-wrap
msgid "`mntlabel`"
msgstr "`mntlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:642
#, no-wrap
msgid "Policy label to be initialized for the mount itself"
msgstr "Метка политики для инициализации самой точки монтирования"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:645
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:979
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1673
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1716
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1754
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1959
#, no-wrap
msgid "`fslabel`"
msgstr "`fslabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:646
#, no-wrap
msgid "Policy label to be initialized for the file system"
msgstr "Метка политики для инициализации файловой системы"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:651
msgid ""
"Initialize the labels on a newly instantiated mount point.  Sleeping is "
"permitted."
msgstr ""
"Инициализировать метки на новой точке монтирования. Разрешено "
"приостанавливать выполнение."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:653
#, no-wrap
msgid "`mpo_init_mount_fs_label`"
msgstr "`mpo_init_mount_fs_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:658
#, no-wrap
msgid "void mpo_init_mount_fs_label(struct label *label);\n"
msgstr "void mpo_init_mount_fs_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:669
#, no-wrap
msgid "Label to be initialized"
msgstr "Метка для инициализации"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:674
msgid ""
"Initialize the label on a newly mounted file system.  Sleeping is permitted"
msgstr ""
"Инициализировать метку на только что смонтированной файловой системе. "
"Разрешено приостановление работы"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:676
#, no-wrap
msgid "`mpo_init_pipe_label`"
msgstr "`mpo_init_pipe_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:681
#, no-wrap
msgid "void mpo_init_pipe_label(struct label *label);\n"
msgstr "void mpo_init_pipe_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:692
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1437
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1474
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1511
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1548
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1585
#, no-wrap
msgid "Label to be filled in"
msgstr "Метка для заполнения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:697
msgid ""
"Initialize a label for a newly instantiated pipe.  Sleeping is permitted."
msgstr ""
"Инициализировать метку для только что созданного канала. Разрешено "
"приостановление выполнения."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:699
#, no-wrap
msgid "`mpo_init_socket_label`"
msgstr "`mpo_init_socket_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:704
#, no-wrap
msgid "void mpo_init_socket_label(struct label *label, int flag);\n"
msgstr "void mpo_init_socket_label(struct label *label, int flag);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:719
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:746
#, no-wrap
msgid "man:malloc[9] flags"
msgstr "флаги man:malloc[9]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:724
msgid ""
"Initialize a label for a newly instantiated socket.  The `flag` field may be "
"one of M_WAITOK and M_NOWAIT, and should be employed to avoid performing a "
"sleeping man:malloc[9] during this initialization call."
msgstr ""
"Инициализировать метку для нового сокета. Поле `flag` может принимать одно "
"из значений M_WAITOK или M_NOWAIT и должно использоваться, чтобы избежать "
"выполнения спящего man:malloc[9] во время этого вызова инициализации."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:726
#, no-wrap
msgid "`mpo_init_socket_peer_label`"
msgstr "`mpo_init_socket_peer_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:731
#, no-wrap
msgid "void mpo_init_socket_peer_label(struct label *label, int flag);\n"
msgstr "void mpo_init_socket_peer_label(struct label *label, int flag);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:751
msgid ""
"Initialize the peer label for a newly instantiated socket.  The `flag` field "
"may be one of M_WAITOK and M_NOWAIT, and should be employed to avoid "
"performing a sleeping man:malloc[9] during this initialization call."
msgstr ""
"Инициализировать метку однорангового узла (peer) для вновь созданного "
"сокета. Поле `flag` может принимать одно из значений M_WAITOK или M_NOWAIT и "
"должно использоваться для избежания выполнения спящего man:malloc[9] во "
"время этого вызова инициализации."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:753
#, no-wrap
msgid "`mpo_init_proc_label`"
msgstr "`mpo_init_proc_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:758
#, no-wrap
msgid "void mpo_init_proc_label(struct label *label);\n"
msgstr "void mpo_init_proc_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:774
msgid ""
"Initialize the label for a newly instantiated process.  Sleeping is "
"permitted."
msgstr ""
"Инициализировать метку для вновь созданного процесса. Разрешено "
"приостановление выполнения."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:776
#, no-wrap
msgid "`mpo_init_vnode_label`"
msgstr "`mpo_init_vnode_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:781
#, no-wrap
msgid "void mpo_init_vnode_label(struct label *label);\n"
msgstr "void mpo_init_vnode_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:797
msgid ""
"Initialize the label on a newly instantiated vnode.  Sleeping is permitted."
msgstr ""
"Инициализировать метку на только что созданном vnode. Разрешено "
"приостанавливать выполнение."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:799
#, no-wrap
msgid "`mpo_destroy_bpfdesc_label`"
msgstr "`mpo_destroy_bpfdesc_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:804
#, no-wrap
msgid "void mpo_destroy_bpfdesc_label(struct label *label);\n"
msgstr "void mpo_destroy_bpfdesc_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:815
#, no-wrap
msgid "bpfdesc label"
msgstr "bpfdesc label"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:820
msgid ""
"Destroy the label on a BPF descriptor.  In this entry point a policy should "
"free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на дескрипторе BPF. В этой точке входа политика должна "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:822
#, no-wrap
msgid "`mpo_destroy_cred_label`"
msgstr "`mpo_destroy_cred_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:827
#, no-wrap
msgid "void mpo_destroy_cred_label(struct label *label);\n"
msgstr "void mpo_destroy_cred_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:838
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:861
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:884
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:907
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:930
#, no-wrap
msgid "Label being destroyed"
msgstr "Метка уничтожается"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:843
msgid ""
"Destroy the label on a credential.  In this entry point, a policy module "
"should free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на учётных данных. В этой точке входа модуль политики "
"должен освободить любое внутреннее хранилище, связанное с `label`, чтобы её "
"можно было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:845
#, no-wrap
msgid "`mpo_destroy_devfsdirent_label`"
msgstr "`mpo_destroy_devfsdirent_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:850
#, no-wrap
msgid "void mpo_destroy_devfsdirent_label(struct label *label);\n"
msgstr "void mpo_destroy_devfsdirent_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:866
msgid ""
"Destroy the label on a devfs entry.  In this entry point, a policy module "
"should free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на записи devfs. В этой точке входа модуль политики должен "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:868
#, no-wrap
msgid "`mpo_destroy_ifnet_label`"
msgstr "`mpo_destroy_ifnet_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:873
#, no-wrap
msgid "void mpo_destroy_ifnet_label(struct label *label);\n"
msgstr "void mpo_destroy_ifnet_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:889
msgid ""
"Destroy the label on a removed interface.  In this entry point, a policy "
"module should free any internal storage associated with `label` so that it "
"may be destroyed."
msgstr ""
"Уничтожить метку на удалённом интерфейсе. В этой точке входа модуль политики "
"должен освободить любое внутреннее хранилище, связанное с `label`, чтобы её "
"можно было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:891
#, no-wrap
msgid "`mpo_destroy_ipq_label`"
msgstr "`mpo_destroy_ipq_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:896
#, no-wrap
msgid "void mpo_destroy_ipq_label(struct label *label);\n"
msgstr "void mpo_destroy_ipq_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:912
msgid ""
"Destroy the label on an IP fragment queue.  In this entry point, a policy "
"module should free any internal storage associated with `label` so that it "
"may be destroyed."
msgstr ""
"Уничтожить метку в очереди IP-фрагментов. В этой точке входа модуль политики "
"должен освободить любое внутреннее хранилище, связанное с `label`, чтобы её "
"можно было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:914
#, no-wrap
msgid "`mpo_destroy_mbuf_label`"
msgstr "`mpo_destroy_mbuf_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:919
#, no-wrap
msgid "void mpo_destroy_mbuf_label(struct label *label);\n"
msgstr "void mpo_destroy_mbuf_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:935
msgid ""
"Destroy the label on an mbuf header.  In this entry point, a policy module "
"should free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку в заголовке mbuf. В этой точке входа модуль политики должен "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:937
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:960
#, no-wrap
msgid "`mpo_destroy_mount_label`"
msgstr "`mpo_destroy_mount_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:942
#, no-wrap
msgid "void mpo_destroy_mount_label(struct label *label);\n"
msgstr "void mpo_destroy_mount_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:953
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:976
#, no-wrap
msgid "Mount point label being destroyed"
msgstr "Точка монтирования метки уничтожается"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:958
msgid ""
"Destroy the labels on a mount point.  In this entry point, a policy module "
"should free the internal storage associated with `mntlabel` so that they may "
"be destroyed."
msgstr ""
"Уничтожить метки на точке монтирования. В этой точке входа модуль политики "
"должен освободить внутреннее хранилище, связанное с `mntlabel`, чтобы её "
"можно было уничтожить."

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:965
#, no-wrap
msgid "void mpo_destroy_mount_label(struct label *mntlabel, struct label *fslabel);\n"
msgstr ""
"void mpo_destroy_mount_label(struct label *mntlabel, struct label *fslabel);"
"\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:980
#, no-wrap
msgid "File system label being destroyed>"
msgstr "Метка файловой системы уничтожается"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:985
msgid ""
"Destroy the labels on a mount point.  In this entry point, a policy module "
"should free the internal storage associated with `mntlabel` and `fslabel` so "
"that they may be destroyed."
msgstr ""
"Уничтожить метки на точке монтирования. В этой точке входа модуль политики "
"должен освободить внутреннее хранилище, связанное с `mntlabel` и `fslabel`, "
"чтобы их можно было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:987
#, no-wrap
msgid "`mpo_destroy_socket_label`"
msgstr "`mpo_destroy_socket_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:992
#, no-wrap
msgid "void mpo_destroy_socket_label(struct label *label);\n"
msgstr "void mpo_destroy_socket_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1003
#, no-wrap
msgid "Socket label being destroyed"
msgstr "Уничтожение метки сокета"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1008
msgid ""
"Destroy the label on a socket.  In this entry point, a policy module should "
"free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на сокете. В этой точке входа модуль политики должен "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1010
#, no-wrap
msgid "`mpo_destroy_socket_peer_label`"
msgstr "`mpo_destroy_socket_peer_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1015
#, no-wrap
msgid "void mpo_destroy_socket_peer_label(struct label *peerlabel);\n"
msgstr "void mpo_destroy_socket_peer_label(struct label *peerlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1025
#, no-wrap
msgid "`peerlabel`"
msgstr "`peerlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1026
#, no-wrap
msgid "Socket peer label being destroyed"
msgstr "Сокет: метка однорангового узла уничтожается"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1031
msgid ""
"Destroy the peer label on a socket.  In this entry point, a policy module "
"should free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку однорангового узла на сокете. В этой точке входа модуль "
"политики должен освободить любое внутреннее хранилище, связанное с `label`, "
"чтобы её можно было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1033
#, no-wrap
msgid "`mpo_destroy_pipe_label`"
msgstr "`mpo_destroy_pipe_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1038
#, no-wrap
msgid "void mpo_destroy_pipe_label(struct label *label);\n"
msgstr "void mpo_destroy_pipe_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1049
#, no-wrap
msgid "Pipe label"
msgstr "Метка канала (pipe)"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1054
msgid ""
"Destroy the label on a pipe.  In this entry point, a policy module should "
"free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на канале. В этой точке входа модуль политики должен "
"освободить всю внутреннюю память, связанную с `label`, чтобы её можно было "
"уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1056
#, no-wrap
msgid "`mpo_destroy_proc_label`"
msgstr "`mpo_destroy_proc_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1061
#, no-wrap
msgid "void mpo_destroy_proc_label(struct label *label);\n"
msgstr "void mpo_destroy_proc_label(struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1072
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1095
#, no-wrap
msgid "Process label"
msgstr "Метка процесса"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1077
msgid ""
"Destroy the label on a process.  In this entry point, a policy module should "
"free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на процессе. В этой точке входа модуль политики должен "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1079
#, no-wrap
msgid "`mpo_destroy_vnode_label`"
msgstr "`mpo_destroy_vnode_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1084
#, no-wrap
msgid "void mpo_destroy_vnode_label(struct label *label);\n"
msgstr "void mpo_destroy_vnode_label(struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1100
msgid ""
"Destroy the label on a vnode.  In this entry point, a policy module should "
"free any internal storage associated with `label` so that it may be "
"destroyed."
msgstr ""
"Уничтожить метку на vnode. В этой точке входа модуль политики должен "
"освободить любое внутреннее хранилище, связанное с `label`, чтобы её можно "
"было уничтожить."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1102
#, no-wrap
msgid "`mpo_copy_mbuf_label`"
msgstr "`mpo_copy_mbuf_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1107
#, no-wrap
msgid "void mpo_copy_mbuf_label(struct label *src, struct label *dest);\n"
msgstr "void mpo_copy_mbuf_label(struct label *src, struct label *dest);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1117
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1143
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1169
#, no-wrap
msgid "`src`"
msgstr "`src`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1118
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1144
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1170
#, no-wrap
msgid "Source label"
msgstr "Метка источника"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1121
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1147
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1173
#, no-wrap
msgid "`dest`"
msgstr "`dest`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1122
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1148
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1174
#, no-wrap
msgid "Destination label"
msgstr "Метка назначения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1126
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1152
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1178
msgid "Copy the label information in `src` into `dest`."
msgstr "Скопировать информацию метки из `src` в `dest`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1128
#, no-wrap
msgid "`mpo_copy_pipe_label`"
msgstr "`mpo_copy_pipe_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1133
#, no-wrap
msgid "void mpo_copy_pipe_label(struct label *src, struct label *dest);\n"
msgstr "void mpo_copy_pipe_label(struct label *src, struct label *dest);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1154
#, no-wrap
msgid "`mpo_copy_vnode_label`"
msgstr "`mpo_copy_vnode_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1159
#, no-wrap
msgid "void mpo_copy_vnode_label(struct label *src, struct label *dest);\n"
msgstr "void mpo_copy_vnode_label(struct label *src, struct label *dest);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1180
#, no-wrap
msgid "`mpo_externalize_cred_label`"
msgstr "`mpo_externalize_cred_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1186
#, no-wrap
msgid ""
"int mpo_externalize_cred_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_cred_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1197
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1237
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1277
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1317
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1357
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1397
#, no-wrap
msgid "Label to be externalized"
msgstr "Метка для вынесения во внешний ресурс"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1200
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1240
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1280
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1320
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1360
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1400
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1440
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1477
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1514
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1551
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1588
#, no-wrap
msgid "`element_name`"
msgstr "`element_name`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1201
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1241
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1281
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1321
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1361
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1401
#, no-wrap
msgid "Name of the policy whose label should be externalized"
msgstr "Имя политики, метка которой должна быть вынесена во внешний ресурс"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1204
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1244
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1284
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1324
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1364
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1404
#, no-wrap
msgid "`sb`"
msgstr "`sb`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1205
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1245
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1285
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1325
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1365
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1405
#, no-wrap
msgid "String buffer to be filled with a text representation of label"
msgstr "Буфер строки для заполнения текстовым представлением метки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1208
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1248
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1288
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1328
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1368
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1408
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1448
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1485
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1522
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1559
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1596
#, no-wrap
msgid "`claimed`"
msgstr "`claimed`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1209
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1249
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1289
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1329
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1369
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1409
#, no-wrap
msgid "Should be incremented when `element_data` can be filled in."
msgstr "Должно быть увеличено, когда `element_data` может быть заполнено."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1218
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1258
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1298
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1338
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1378
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1418
msgid ""
"Produce an externalized label based on the label structure passed.  An "
"externalized label consists of a text representation of the label contents "
"that can be used with userland applications and read by the user.  "
"Currently, all policies' `externalize` entry points will be called, so the "
"implementation should check the contents of `element_name` before attempting "
"to fill in `sb`.  If `element_name` does not match the name of your policy, "
"simply return 0.  Only return nonzero if an error occurs while externalizing "
"the label data.  Once the policy fills in `element_data`, `*claimed` should "
"be incremented."
msgstr ""
"Создать внешнее представление метки на основе переданной структуры метки. "
"Внешнее представление метки состоит из текстового представления содержимого "
"метки, которое может использоваться пользовательскими приложениями и "
"прочитано пользователем. В настоящее время будут вызываться точки входа "
"`externalize` всех политик, поэтому реализация должна проверить содержимое "
"`element_name` перед попыткой заполнить `sb`. Если `element_name` не "
"соответствует имени вашей политики, просто верните 0. Возвращайте ненулевое "
"значение только в случае ошибки при внешнем представлении данных метки. "
"После того как политика заполнит `element_data`, `*claimed` должен быть "
"увеличен."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1220
#, no-wrap
msgid "`mpo_externalize_ifnet_label`"
msgstr "`mpo_externalize_ifnet_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1226
#, no-wrap
msgid ""
"int mpo_externalize_ifnet_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_ifnet_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1260
#, no-wrap
msgid "`mpo_externalize_pipe_label`"
msgstr "`mpo_externalize_pipe_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1266
#, no-wrap
msgid ""
"int mpo_externalize_pipe_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_pipe_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1300
#, no-wrap
msgid "`mpo_externalize_socket_label`"
msgstr "`mpo_externalize_socket_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1306
#, no-wrap
msgid ""
"int mpo_externalize_socket_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_socket_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1340
#, no-wrap
msgid "`mpo_externalize_socket_peer_label`"
msgstr "`mpo_externalize_socket_peer_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1346
#, no-wrap
msgid ""
"int mpo_externalize_socket_peer_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_socket_peer_label(struct label *label, char "
"*element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1380
#, no-wrap
msgid "`mpo_externalize_vnode_label`"
msgstr "`mpo_externalize_vnode_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1386
#, no-wrap
msgid ""
"int mpo_externalize_vnode_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"
msgstr ""
"int mpo_externalize_vnode_label(struct label *label, char *element_name,\n"
"    struct sbuf *sb, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1420
#, no-wrap
msgid "`mpo_internalize_cred_label`"
msgstr "`mpo_internalize_cred_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1426
#, no-wrap
msgid ""
"int mpo_internalize_cred_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"
msgstr ""
"int mpo_internalize_cred_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1441
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1478
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1515
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1552
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1589
#, no-wrap
msgid "Name of the policy whose label should be internalized"
msgstr ""
"Имя политики, метка которой должна быть приведена к внутреннему представлению"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1444
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1481
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1518
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1555
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1592
#, no-wrap
msgid "`element_data`"
msgstr "`element_data`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1445
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1482
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1519
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1556
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1593
#, no-wrap
msgid "Text data to be internalized"
msgstr "Текстовые данные для преобразования к внутреннему представлению"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1449
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1486
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1523
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1560
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1597
#, no-wrap
msgid "Should be incremented when data can be successfully internalized."
msgstr ""
"Должно увеличиваться, когда данные могут быть успешно преобразовываться во "
"внутреннее представление."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1455
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1492
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1529
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1566
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1603
msgid ""
"Produce an internal label structure based on externalized label data in text "
"format.  Currently, all policies' `internalize` entry points are called when "
"internalization is requested, so the implementation should compare the "
"contents of `element_name` to its own name in order to be sure it should be "
"internalizing the data in `element_data`.  Just as in the `externalize` "
"entry points, the entry point should return 0 if `element_name` does not "
"match its own name, or when data can successfully be internalized, in which "
"case `*claimed` should be incremented."
msgstr ""
"Создать внутреннюю структуру меток на основе данных метки во внешнем "
"представлении в текстовом формате. В настоящее время, при запросе "
"преобразования во внутреннее представление вызываются точки входа "
"`internalize` всех политик, поэтому реализация должна сравнивать содержимое "
"`element_name` со своим именем, чтобы убедиться, что она должна "
"преобразовывать данные в `element_data`. Как и в точках входа `externalize`, "
"точка входа должна возвращать 0, если `element_name` не совпадает с её "
"собственным именем, или когда данные могут быть успешно преобразованы, в "
"этом случае `*claimed` должен быть увеличен."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1457
#, no-wrap
msgid "`mpo_internalize_ifnet_label`"
msgstr "`mpo_internalize_ifnet_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1463
#, no-wrap
msgid ""
"int mpo_internalize_ifnet_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"
msgstr ""
"int mpo_internalize_ifnet_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1494
#, no-wrap
msgid "`mpo_internalize_pipe_label`"
msgstr "`mpo_internalize_pipe_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1500
#, no-wrap
msgid ""
"int mpo_internalize_pipe_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"
msgstr ""
"int mpo_internalize_pipe_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1531
#, no-wrap
msgid "`mpo_internalize_socket_label`"
msgstr "`mpo_internalize_socket_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1537
#, no-wrap
msgid ""
"int mpo_internalize_socket_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"
msgstr ""
"int mpo_internalize_socket_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1568
#, no-wrap
msgid "`mpo_internalize_vnode_label`"
msgstr "`mpo_internalize_vnode_label`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1574
#, no-wrap
msgid ""
"int mpo_internalize_vnode_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"
msgstr ""
"int mpo_internalize_vnode_label(struct label *label, char *element_name,\n"
"    char *element_data, int *claimed);\n"

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1605
#, no-wrap
msgid "Label Events"
msgstr "События метки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1613
msgid ""
"This class of entry points is used by the MAC framework to permit policies "
"to maintain label information on kernel objects.  For each labeled kernel "
"object of interest to a MAC policy, entry points may be registered for "
"relevant life cycle events.  All objects implement initialization, creation, "
"and destruction hooks.  Some objects will also implement relabeling, "
"allowing user processes to change the labels on objects.  Some objects will "
"also implement object-specific events, such as label events associated with "
"IP reassembly.  A typical labeled object will have the following life cycle "
"of entry points:"
msgstr ""
"Этот класс точек входа используется фреймворком MAC для разрешения политикам "
"поддерживать информацию о метках на объектах ядра. Для каждого помеченного "
"объекта ядра, представляющего интерес для политики MAC, могут быть "
"зарегистрированы точки входа для соответствующих событий жизненного цикла. "
"Все объекты реализуют хуки инициализации, создания и уничтожения. Некоторые "
"объекты также реализуют перемаркировку, позволяя пользовательским процессам "
"изменять метки на объектах. Некоторые объекты также реализуют специфичные "
"для объекта события, такие как события меток, связанные с повторной сборкой "
"IP. Типичный помеченный объект будет иметь следующий жизненный цикл точек "
"входа:"

#. type: delimited block . 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1625
#, no-wrap
msgid ""
"Label initialization          o\n"
"(object-specific wait)         \\\n"
"Label creation                  o\n"
"                                 \\\n"
"Relabel events,                   o--<--.\n"
"Various object-specific,          |     |\n"
"Access control events             ~-->--o\n"
"                                         \\\n"
"Label destruction                         o\n"
msgstr ""
"Label initialization          o\n"
"(object-specific wait)         \\\n"
"Label creation                  o\n"
"                                 \\\n"
"Relabel events,                   o--<--.\n"
"Various object-specific,          |     |\n"
"Access control events             ~-->--o\n"
"                                         \\\n"
"Label destruction                         o\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1629
msgid ""
"Label initialization permits policies to allocate memory and set initial "
"values for labels without context for the use of the object.  The label slot "
"allocated to a policy will be zeroed by default, so some policies may not "
"need to perform initialization."
msgstr ""
"Инициализация меток позволяет политикам выделять память и устанавливать "
"начальные значения для меток без контекста использования объекта. Слот "
"метки, выделенный для политики, по умолчанию будет обнулен, поэтому "
"некоторым политикам может не потребоваться выполнять инициализацию."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1636
msgid ""
"Label creation occurs when the kernel structure is associated with an actual "
"kernel object.  For example, Mbufs may be allocated and remain unused in a "
"pool until they are required.  mbuf allocation causes label initialization "
"on the mbuf to take place, but mbuf creation occurs when the mbuf is "
"associated with a datagram.  Typically, context will be provided for a "
"creation event, including the circumstances of the creation, and labels of "
"other relevant objects in the creation process.  For example, when an mbuf "
"is created from a socket, the socket and its label will be presented to "
"registered policies in addition to the new mbuf and its label.  Memory "
"allocation in creation events is discouraged, as it may occur in performance "
"sensitive ports of the kernel; in addition, creation calls are not permitted "
"to fail so a failure to allocate memory cannot be reported."
msgstr ""
"Создание метки происходит, когда структура ядра связывается с реальным "
"объектом ядра. Например, Mbuf могут быть выделены и оставаться "
"неиспользованными в пуле до тех пор, пока они не понадобятся. Выделение mbuf "
"приводит к инициализации метки на mbuf, но создание mbuf происходит, когда "
"mbuf связывается с датаграммой. Обычно для события создания предоставляется "
"контекст, включая обстоятельства создания и метки других значимых объектов в "
"процессе создания. Например, когда mbuf создаётся из сокета, сокет и его "
"метка будут переданы зарегистрированным политикам в дополнение к новому mbuf "
"и его метке. Выделение памяти в событиях создания не рекомендуется, так как "
"это может происходить в чувствительных к производительности участках ядра; "
"кроме того, вызовы создания не могут завершиться неудачей, поэтому "
"невозможность выделить память не может быть сообщена."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1639
msgid ""
"Object specific events do not generally fall into the other broad classes of "
"label events, but will generally provide an opportunity to modify or update "
"the label on an object based on additional context.  For example, the label "
"on an IP fragment reassembly queue may be updated during the MAC_UPDATE_IPQ "
"entry point as a result of the acceptance of an additional mbuf to that "
"queue."
msgstr ""
"События, привязанные к объектам, обычно не попадают в другие классы событий "
"меток, но, как правило, предоставляют возможность изменить или обновить "
"метку объекта на основе дополнительного контекста. Например, метка в очереди "
"сборки IP-фрагментов может быть обновлена во время точки входа "
"`MAC_UPDATE_IPQ` в результате принятия дополнительного mbuf в эту очередь."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1641
msgid "Access control events are discussed in detail in the following section."
msgstr "События контроля доступа подробно рассматриваются в следующем разделе."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1643
msgid ""
"Label destruction permits policies to release storage or state associated "
"with a label during its association with an object so that the kernel data "
"structures supporting the object may be reused or released."
msgstr ""
"Уничтожение метки позволяет политикам освобождать хранилище или состояние, "
"связанное с меткой во время её ассоциации с объектом, чтобы структуры данных "
"ядра, поддерживающие объект, могли быть повторно использованы или "
"освобождены."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1647
msgid ""
"In addition to labels associated with specific kernel objects, an additional "
"class of labels exists: temporary labels.  These labels are used to store "
"update information submitted by user processes.  These labels are "
"initialized and destroyed as with other label types, but the creation event "
"is MAC_INTERNALIZE, which accepts a user label to be converted to an in-"
"kernel representation."
msgstr ""
"В дополнение к меткам, связанным с определёнными объектами ядра, существует "
"дополнительный класс меток: временные метки. Эти метки используются для "
"хранения информации об обновлениях, отправляемых пользовательскими "
"процессами. Они инициализируются и уничтожаются так же, как и другие типы "
"меток, но событие создания — это `MAC_INTERNALIZE`, которое принимает "
"пользовательскую метку для преобразования во внутреннее представление в ядре."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1649
#, no-wrap
msgid "File System Object Labeling Event Operations"
msgstr "Действия с событиями меток объектов файловой системы"

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1652
#, no-wrap
msgid "`mpo_associate_vnode_devfs`"
msgstr "`mpo_associate_vnode_devfs`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1659
#, no-wrap
msgid ""
"void mpo_associate_vnode_devfs(struct mount *mp, struct label *fslabel,\n"
"    struct devfs_dirent *de, struct label *delabel, struct vnode *vp,\n"
"    struct label *vlabel);\n"
msgstr ""
"void mpo_associate_vnode_devfs(struct mount *mp, struct label *fslabel,\n"
"    struct devfs_dirent *de, struct label *delabel, struct vnode *vp,\n"
"    struct label *vlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1669
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1712
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1750
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1854
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1951
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3834
#, no-wrap
msgid "`mp`"
msgstr "`mp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1670
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1855
#, no-wrap
msgid "Devfs mount point"
msgstr "Точка монтирования devfs"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1674
#, no-wrap
msgid "Devfs file system label (`mp->mnt_fslabel`)"
msgstr "Метка файловой системы devfs (`mp->mnt_fslabel`)"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1677
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1866
#, no-wrap
msgid "`de`"
msgstr "`de`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1678
#, no-wrap
msgid "Devfs directory entry"
msgstr "Запись каталога devfs"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1681
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1870
#, no-wrap
msgid "`delabel`"
msgstr "`delabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1682
#, no-wrap
msgid "Policy label associated with `de`"
msgstr "Метка политики, связанная с `de`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1685
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1720
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1758
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1914
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2009
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2044
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2084
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2934
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2968
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3240
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3799
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3897
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4050
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4089
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4126
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4160
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4197
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4252
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4287
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4322
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4357
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4392
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4432
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4476
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4586
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4656
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4690
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4723
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4764
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4812
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4849
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4886
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4928
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5031
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5181
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5282
#, no-wrap
msgid "`vp`"
msgstr "`vp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1686
#, no-wrap
msgid "vnode associated with `de`"
msgstr "узел vnode, связанный с `de`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1689
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1724
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1762
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1918
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2048
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3244
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5185
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5286
#, no-wrap
msgid "`vlabel`"
msgstr "`vlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1690
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1725
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1763
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1919
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2049
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4257
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4292
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4397
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4437
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4481
#, no-wrap
msgid "Policy label associated with `vp`"
msgstr "Метка политики, связанная с `vp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1694
msgid ""
"Fill in the label (`vlabel`) for a newly created devfs vnode based on the "
"devfs directory entry passed in `de` and its label."
msgstr ""
"Заполнить метку (`vlabel`) для только что созданного devfs vnode на основе "
"записи каталога devfs, переданной в `de`, и её метки."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1696
#, no-wrap
msgid "`mpo_associate_vnode_extattr`"
msgstr "`mpo_associate_vnode_extattr`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1702
#, no-wrap
msgid ""
"int mpo_associate_vnode_extattr(struct mount *mp, struct label *fslabel,\n"
"    struct vnode *vp, struct label *vlabel);\n"
msgstr ""
"int mpo_associate_vnode_extattr(struct mount *mp, struct label *fslabel,\n"
"    struct vnode *vp, struct label *vlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1713
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1751
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1899
#, no-wrap
msgid "File system mount point"
msgstr "Точка монтирования файловой системы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1717
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1755
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1903
#, no-wrap
msgid "File system label"
msgstr "Метка файловой системы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1721
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1759
#, no-wrap
msgid "Vnode to label"
msgstr "Узел vnode для метки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1732
msgid ""
"Attempt to retrieve the label for `vp` from the file system extended "
"attributes.  Upon success, the value `0` is returned.  Should extended "
"attribute retrieval not be supported, an accepted fallback is to copy "
"`fslabel` into `vlabel`.  In the event of an error, an appropriate value for "
"`errno` should be returned."
msgstr ""
"Попытка получить метку для `vp` из расширенных атрибутов файловой системы. В "
"случае успеха возвращается значение `0`. Если получение расширенных "
"атрибутов не поддерживается, допустимым резервным вариантом является "
"копирование `fslabel` в `vlabel`. В случае ошибки должно быть возвращено "
"соответствующее значение `errno`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1734
#, no-wrap
msgid "`mpo_associate_vnode_singlelabel`"
msgstr "`mpo_associate_vnode_singlelabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1740
#, no-wrap
msgid ""
"void mpo_associate_vnode_singlelabel(struct mount *mp, struct label *fslabel,\n"
"    struct vnode *vp, struct label *vlabel);\n"
msgstr ""
"void mpo_associate_vnode_singlelabel(struct mount *mp, struct label *fslabel,"
"\n"
"    struct vnode *vp, struct label *vlabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1767
msgid ""
"On non-multilabel file systems, this entry point is called to set the policy "
"label for `vp` based on the file system label, `fslabel`."
msgstr ""
"На файловых системах без поддержки multilabel эта точка входа вызывается для "
"установки метки политики для `vp` на основе метки файловой системы `fslabel`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1769
#, no-wrap
msgid "`mpo_create_devfs_device`"
msgstr "`mpo_create_devfs_device`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1775
#, no-wrap
msgid ""
"void mpo_create_devfs_device(dev_t dev, struct devfs_dirent *devfs_dirent,\n"
"    struct label *label);\n"
msgstr ""
"void mpo_create_devfs_device(dev_t dev, struct devfs_dirent *devfs_dirent,\n"
"    struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1785
#, no-wrap
msgid "`dev`"
msgstr "`dev`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1786
#, no-wrap
msgid "Device corresponding with `devfs_dirent`"
msgstr "Устройство, соответствующее `devfs_dirent`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1789
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1825
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2076
#, no-wrap
msgid "`devfs_dirent`"
msgstr "`devfs_dirent`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1790
#, no-wrap
msgid "Devfs directory entry to be labeled."
msgstr "Запись в каталоге devfs, для которой создаётся метка."

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1794
#, no-wrap
msgid "Label for `devfs_dirent` to be filled in."
msgstr "Метка для `devfs_dirent`, которую нужно заполнить."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1799
msgid ""
"Fill out the label on a devfs_dirent being created for the passed device.  "
"This call will be made when the device file system is mounted, regenerated, "
"or a new device is made available."
msgstr ""
"Заполнить метку на devfs_dirent, создаваемом для переданного устройства. "
"Этот вызов будет выполнен при монтировании файловой системы устройств, её "
"восстановлении или при появлении нового устройства."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1801
#, no-wrap
msgid "`mpo_create_devfs_directory`"
msgstr "`mpo_create_devfs_directory`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1807
#, no-wrap
msgid ""
"void mpo_create_devfs_directory(char *dirname, int dirnamelen,\n"
"    struct devfs_dirent *devfs_dirent, struct label *label);\n"
msgstr ""
"void mpo_create_devfs_directory(char *dirname, int dirnamelen,\n"
"    struct devfs_dirent *devfs_dirent, struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1817
#, no-wrap
msgid "`dirname`"
msgstr "`dirname`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1818
#, no-wrap
msgid "Name of directory being created"
msgstr "Имя создаваемого каталога"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1821
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5317
#, no-wrap
msgid "`namelen`"
msgstr "`namelen`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1822
#, no-wrap
msgid "Length of string `dirname`"
msgstr "Длина строки `dirname`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1826
#, no-wrap
msgid "Devfs directory entry for directory being created."
msgstr "Запись в devfs для создаваемого каталога."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1831
msgid ""
"Fill out the label on a devfs_dirent being created for the passed "
"directory.  This call will be made when the device file system is mounted, "
"regenerated, or a new device requiring a specific directory hierarchy is "
"made available."
msgstr ""
"Заполнить метку на devfs_dirent, создаваемом для переданного каталога. Этот "
"вызов будет выполнен при монтировании файловой системы устройств, её "
"восстановлении или при появлении нового устройства, требующего определённой "
"иерархии каталогов."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1833
#, no-wrap
msgid "`mpo_create_devfs_symlink`"
msgstr "`mpo_create_devfs_symlink`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1840
#, no-wrap
msgid ""
"void mpo_create_devfs_symlink(struct ucred *cred, struct mount *mp,\n"
"    struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de,\n"
"    struct label *delabel);\n"
msgstr ""
"void mpo_create_devfs_symlink(struct ucred *cred, struct mount *mp,\n"
"    struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de,"
"\n"
"    struct label *delabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1850
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1894
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1947
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2005
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2040
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2152
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2184
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2252
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2287
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2398
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2824
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2996
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3018
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3040
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3135
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3157
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3183
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3209
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3236
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3266
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3288
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3311
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3350
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3381
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3412
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3447
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3478
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3509
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3542
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3579
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3610
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3670
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3699
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3734
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3768
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3795
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3830
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3863
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3893
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3931
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3964
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3995
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4038
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4085
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4122
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4156
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4193
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4240
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4283
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4318
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4353
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4420
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4464
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4512
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4545
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4582
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4619
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4652
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4686
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4719
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4760
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4808
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4845
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4882
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4924
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4964
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4994
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5027
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5062
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5103
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5144
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5207
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5229
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5255
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5278
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5309
#, no-wrap
msgid "`cred`"
msgstr "`cred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1851
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1895
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1948
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2006
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2041
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2153
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2185
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2253
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2288
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2399
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2825
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3041
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3136
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3158
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3184
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3210
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3237
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3267
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3289
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3312
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3351
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3382
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3413
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3448
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3479
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3510
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3543
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3580
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3611
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3641
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3671
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3700
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3735
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3769
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3796
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3831
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3864
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3894
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3932
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3965
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3996
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4039
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4086
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4123
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4157
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4194
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4241
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4284
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4354
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4385
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4421
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4465
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4513
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4546
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4583
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4620
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4653
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4687
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4720
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4761
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4809
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4846
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4883
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4925
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4965
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4995
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5028
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5063
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5104
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5145
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5178
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5208
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5230
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5256
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5279
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5310
#, no-wrap
msgid "Subject credential"
msgstr "Учётные данные субъекта"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1858
#, no-wrap
msgid "`dd`"
msgstr "`dd`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1859
#, no-wrap
msgid "Link destination"
msgstr "Место назначения ссылки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1862
#, no-wrap
msgid "`ddlabel`"
msgstr "`ddlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1863
#, no-wrap
msgid "Label associated with `dd`"
msgstr "Метка, связанная с `dd`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1867
#, no-wrap
msgid "Symlink entry"
msgstr "Точка входа символьной ссылки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1871
#, no-wrap
msgid "Label associated with `de`"
msgstr "Метка, связанная с `de`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1875
msgid ""
"Fill in the label (`delabel`) for a newly created man:devfs[5] symbolic link "
"entry."
msgstr ""
"Заполнить метку (`delabel`) для новой структуры man:devfs[5] символьной "
"ссылки."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1877
#, no-wrap
msgid "`mpo_create_vnode_extattr`"
msgstr "`mpo_create_vnode_extattr`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1884
#, no-wrap
msgid ""
"int mpo_create_vnode_extattr(struct ucred *cred, struct mount *mp,\n"
"    struct label *fslabel, struct vnode *dvp, struct label *dlabel,\n"
"    struct vnode *vp, struct label *vlabel, struct componentname *cnp);\n"
msgstr ""
"int mpo_create_vnode_extattr(struct ucred *cred, struct mount *mp,\n"
"    struct label *fslabel, struct vnode *dvp, struct label *dlabel,\n"
"    struct vnode *vp, struct label *vlabel, struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1898
#, no-wrap
msgid "`mount`"
msgstr "`mount`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1906
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3935
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3968
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3999
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4042
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4244
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4424
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4468
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4549
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4623
#, no-wrap
msgid "`dvp`"
msgstr "`dvp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1907
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4043
#, no-wrap
msgid "Parent directory vnode"
msgstr "Родительский каталог vnode"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1910
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3939
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3972
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4003
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4046
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4248
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4428
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4472
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4553
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4627
#, no-wrap
msgid "`dlabel`"
msgstr "`dlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1911
#, no-wrap
msgid "Label associated with `dvp`"
msgstr "Метка, связанная с `dvp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1915
#, no-wrap
msgid "Newly created vnode"
msgstr "Вновь созданная vnode"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1922
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4007
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4058
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4260
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4440
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4488
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4557
#, no-wrap
msgid "`cnp`"
msgstr "`cnp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1923
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4059
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4441
#, no-wrap
msgid "Component name for `vp`"
msgstr "Название компонента для `vp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1929
msgid ""
"Write out the label for `vp` to the appropriate extended attribute.  If the "
"write succeeds, fill in `vlabel` with the label, and return 0.  Otherwise, "
"return an appropriate error."
msgstr ""
"Записать метку для `vp` в соответствующий расширенный атрибут. Если запись "
"прошла успешно, заполняет `vlabel` меткой и возвращает 0. В противном случае "
"вернет соответствующую ошибку."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1931
#, no-wrap
msgid "`mpo_create_mount`"
msgstr "`mpo_create_mount`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1937
#, no-wrap
msgid ""
"void mpo_create_mount(struct ucred *cred, struct mount *mp, struct label *mnt,\n"
"    struct label *fslabel);\n"
msgstr ""
"void mpo_create_mount(struct ucred *cred, struct mount *mp, struct label "
"*mnt,\n"
"    struct label *fslabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1952
#, no-wrap
msgid "Object; file system being mounted"
msgstr "Объект; файловая система, которая монтируется"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1956
#, no-wrap
msgid "Policy label to be filled in for `mp`"
msgstr "Метка политики для заполнения в `mp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1960
#, no-wrap
msgid "Policy label for the file system `mp` mounts."
msgstr "Метка политики для файловой системы, монтируемой в `mp`."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1965
msgid ""
"Fill out the labels on the mount point being created by the passed subject "
"credential.  This call will be made when a new file system is mounted."
msgstr ""
"Заполнить метки на точке монтирования, создаваемой переданными учётными "
"данными субъекта. Этот вызов будет выполнен при монтировании новой файловой "
"системы."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1967
#, no-wrap
msgid "`mpo_create_root_mount`"
msgstr "`mpo_create_root_mount`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1973
#, no-wrap
msgid ""
"void mpo_create_root_mount(struct ucred *cred, struct mount *mp,\n"
"    struct label *mntlabel, struct label *fslabel);\n"
msgstr ""
"void mpo_create_root_mount(struct ucred *cred, struct mount *mp,\n"
"    struct label *mntlabel, struct label *fslabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1983
#, no-wrap
msgid "See crossref:mac[mac-mpo-create-mount, `mpo_create_mount`]."
msgstr "См. crossref:mac[mac-mpo-create-mount, `mpo_create_mount`]."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1987
msgid ""
"Fill out the labels on the mount point being created by the passed subject "
"credential.  This call will be made when the root file system is mounted, "
"after `mpo_create_mount;`."
msgstr ""
"Заполнить метки на точке монтирования, создаваемой переданными учётными "
"данными субъекта. Этот вызов будет выполнен при монтировании корневой "
"файловой системы после `mpo_create_mount;`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1989
#, no-wrap
msgid "`mpo_relabel_vnode`"
msgstr "`mpo_relabel_vnode`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:1995
#, no-wrap
msgid ""
"void mpo_relabel_vnode(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vnodelabel, struct label *newlabel);\n"
msgstr ""
"void mpo_relabel_vnode(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vnodelabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2010
#, no-wrap
msgid "vnode to relabel"
msgstr "vnode для перемаркировки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2013
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2088
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2938
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2972
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3803
#, no-wrap
msgid "`vnodelabel`"
msgstr "`vnodelabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2014
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3804
#, no-wrap
msgid "Existing policy label for `vp`"
msgstr "Существующая метка политики для `vp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2017
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2264
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2299
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2334
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2836
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3044
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3424
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3711
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3746
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3772
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3807
#, no-wrap
msgid "`newlabel`"
msgstr "`newlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2018
#, no-wrap
msgid "New, possibly partial label to replace `vnodelabel`"
msgstr "Новая, возможно частичная метка для замены `vnodelabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2022
msgid ""
"Update the label on the passed vnode given the passed update vnode label and "
"the passed subject credential."
msgstr ""
"Обновить метку на переданном vnode с учётом переданной обновленной метки "
"vnode и переданных учётных данных субъекта."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2024
#, no-wrap
msgid "`mpo_setlabel_vnode_extattr`"
msgstr "`mpo_setlabel_vnode_extattr`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2030
#, no-wrap
msgid ""
"int mpo_setlabel_vnode_extattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel, struct label *intlabel);\n"
msgstr ""
"int mpo_setlabel_vnode_extattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel, struct label *intlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2045
#, no-wrap
msgid "Vnode for which the label is being written"
msgstr "vnode, для которой записывается метка"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2052
#, no-wrap
msgid "`intlabel`"
msgstr "`intlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2053
#, no-wrap
msgid "Label to write out"
msgstr "Метка для записи"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2058
msgid ""
"Write out the policy from `intlabel` to an extended attribute.  This is "
"called from `vop_stdcreatevnode_ea`."
msgstr ""
"Записать политику из `intlabel` в расширенный атрибут. Этот метод вызывается "
"из `vop_stdcreatevnode_ea`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2060
#, no-wrap
msgid "`mpo_update_devfsdirent`"
msgstr "`mpo_update_devfsdirent`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2066
#, no-wrap
msgid ""
"void mpo_update_devfsdirent(struct devfs_dirent *devfs_dirent,\n"
"    struct label *direntlabel, struct vnode *vp, struct label *vnodelabel);\n"
msgstr ""
"void mpo_update_devfsdirent(struct devfs_dirent *devfs_dirent,\n"
"    struct label *direntlabel, struct vnode *vp, struct label *vnodelabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2077
#, no-wrap
msgid "Object; devfs directory entry"
msgstr "Объект; каталожная запись devfs"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2080
#, no-wrap
msgid "`direntlabel`"
msgstr "`direntlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2081
#, no-wrap
msgid "Policy label for `devfs_dirent` to be updated."
msgstr "Метка политики для `devfs_dirent`, которая будет обновлена."

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2085
#, no-wrap
msgid "Parent vnode"
msgstr "Родительский vnode"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2087
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2937
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3802
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4092
#, no-wrap
msgid "Locked"
msgstr "Заблокирован"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2089
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2939
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2973
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3902
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4055
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4094
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4131
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4165
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4202
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4591
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4661
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4695
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4728
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4769
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4817
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4854
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4891
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4933
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5036
#, no-wrap
msgid "Policy label for `vp`"
msgstr "Метка политики для `vp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2095
msgid ""
"Update the `devfs_dirent` label from the passed devfs vnode label.  This "
"call will be made when a devfs vnode has been successfully relabeled to "
"commit the label change such that it lasts even if the vnode is recycled.  "
"It will also be made when a symlink is created in devfs, following a call to "
"`mac_vnode_create_from_vnode` to initialize the vnode label."
msgstr ""
"Обновить метку `devfs_dirent` из переданной метки devfs vnode. Этот вызов "
"будет выполнен, когда devfs vnode успешно перемаркирован, чтобы "
"зафиксировать изменение метки, чтобы оно сохранилось, даже если vnode будет "
"переиспользован. Он также будет выполнен при создании символьной ссылки в "
"devfs после вызова `mac_vnode_create_from_vnode` для инициализации метки "
"vnode."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2097
#, no-wrap
msgid "IPC Object Labeling Event Operations"
msgstr "Действия с событиями меток объектов IPC"

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2100
#, no-wrap
msgid "`mpo_create_mbuf_from_socket`"
msgstr "`mpo_create_mbuf_from_socket`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2106
#, no-wrap
msgid ""
"void mpo_create_mbuf_from_socket(struct socket *so, struct label *socketlabel,\n"
"    struct mbuf *m, struct label *mbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_from_socket(struct socket *so, struct label "
"*socketlabel,\n"
"    struct mbuf *m, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2116
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3513
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3546
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3674
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3738
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4516
#, no-wrap
msgid "`socket`"
msgstr "`socket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2117
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3584
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3615
#, no-wrap
msgid "Socket"
msgstr "Сокет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2119
#, no-wrap
msgid "Socket locking WIP"
msgstr "Блокировка сокетов — работа в процессе"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2120
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2192
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3517
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3550
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3587
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3618
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3678
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3742
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4520
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5152
#, no-wrap
msgid "`socketlabel`"
msgstr "`socketlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2121
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3518
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3551
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3679
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4521
#, no-wrap
msgid "Policy label for `socket`"
msgstr "Метка политики для `socket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2124
#, no-wrap
msgid "`m`"
msgstr "`m`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2125
#, no-wrap
msgid "Object; mbuf"
msgstr "Объект; mbuf"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2128
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2326
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2610
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2646
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2682
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2863
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5078
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5119
#, no-wrap
msgid "`mbuflabel`"
msgstr "`mbuflabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2129
#, no-wrap
msgid "Policy label to fill in for `m`"
msgstr "Метка политики для заполнения для `m`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2134
msgid ""
"Set the label on a newly created mbuf header from the passed socket label.  "
"This call is made when a new datagram or message is generated by the socket "
"and stored in the passed mbuf."
msgstr ""
"Установить метку на только что созданном заголовке mbuf из переданной метки "
"сокета. Этот вызов выполняется, когда новый датаграмма или сообщение "
"генерируется сокетом и сохраняется в переданном mbuf."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2136
#, no-wrap
msgid "`mpo_create_pipe`"
msgstr "`mpo_create_pipe`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2142
#, no-wrap
msgid ""
"void mpo_create_pipe(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"
msgstr ""
"void mpo_create_pipe(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2156
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2256
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3315
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3354
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3385
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3416
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3451
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3482
#, no-wrap
msgid "`pipe`"
msgstr "`pipe`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2157
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2257
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3316
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3355
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3386
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3417
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3452
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3483
#, no-wrap
msgid "Pipe"
msgstr "Канал"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2160
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3319
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3358
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3389
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3420
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3455
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3486
#, no-wrap
msgid "`pipelabel`"
msgstr "`pipelabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2161
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3320
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3359
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3390
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3456
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3487
#, no-wrap
msgid "Policy label associated with `pipe`"
msgstr "Метка политики, связанная с `pipe`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2166
msgid ""
"Set the label on a newly created pipe from the passed subject credential.  "
"This call is made when a new pipe is created."
msgstr ""
"Установить метку на только что созданном канале из переданных учётных данных "
"субъекта. Этот вызов выполняется при создании нового канала."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2168
#, no-wrap
msgid "`mpo_create_socket`"
msgstr "`mpo_create_socket`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2174
#, no-wrap
msgid ""
"void mpo_create_socket(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"
msgstr ""
"void mpo_create_socket(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2187
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2290
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2401
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2929
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2967
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3798
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3866
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4088
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5147
#, no-wrap
msgid "Immutable"
msgstr "Неизменяемый"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2188
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2291
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3583
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3614
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5148
#, no-wrap
msgid "`so`"
msgstr "`so`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2189
#, no-wrap
msgid "Object; socket to label"
msgstr "Объект; сокет для добавления метки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2193
#, no-wrap
msgid "Label to fill in for `so`"
msgstr "Метка для заполнения для `so`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2198
msgid ""
"Set the label on a newly created socket from the passed subject credential.  "
"This call is made when a socket is created."
msgstr ""
"Установить метку на новом сокете из переданных учётных данных субъекта. Этот "
"вызов выполняется при создании сокета."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2200
#, no-wrap
msgid "`mpo_create_socket_from_socket`"
msgstr "`mpo_create_socket_from_socket`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2207
#, no-wrap
msgid ""
"void mpo_create_socket_from_socket(struct socket *oldsocket,\n"
"    struct label *oldsocketlabel, struct socket *newsocket,\n"
"    struct label *newsocketlabel);\n"
msgstr ""
"void mpo_create_socket_from_socket(struct socket *oldsocket,\n"
"    struct label *oldsocketlabel, struct socket *newsocket,\n"
"    struct label *newsocketlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2217
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2359
#, no-wrap
msgid "`oldsocket`"
msgstr "`oldsocket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2218
#, no-wrap
msgid "Listening socket"
msgstr "Сокет, вызвавший listen"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2221
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2363
#, no-wrap
msgid "`oldsocketlabel`"
msgstr "`oldsocketlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2222
#, no-wrap
msgid "Policy label associated with `oldsocket`"
msgstr "Метка политики, связанная с `oldsocket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2225
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2367
#, no-wrap
msgid "`newsocket`"
msgstr "`newsocket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2226
#, no-wrap
msgid "New socket"
msgstr "Новый сокет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2229
#, no-wrap
msgid "`newsocketlabel`"
msgstr "`newsocketlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2230
#, no-wrap
msgid "Policy label associated with `newsocketlabel`"
msgstr "Метка политики, связанная с `newsocketlabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2234
msgid ""
"Label a socket, `newsocket`, newly man:accept[2]ed, based on the "
"man:listen[2] socket, `oldsocket`."
msgstr ""
"Создать метку сокета `newsocket`, только что принявшему соединение через "
"man:accept[2], на основе сокета `oldsocket`, вызвавшего man:listen[2] ."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2236
#, no-wrap
msgid "`mpo_relabel_pipe`"
msgstr "`mpo_relabel_pipe`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2242
#, no-wrap
msgid ""
"void mpo_relabel_pipe(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *oldlabel, struct label *newlabel);\n"
msgstr ""
"void mpo_relabel_pipe(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *oldlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2260
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2295
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2330
#, no-wrap
msgid "`oldlabel`"
msgstr "`oldlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2261
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3421
#, no-wrap
msgid "Current policy label associated with `pipe`"
msgstr "Текущая метка политики, связанная с `pipe`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2265
#, no-wrap
msgid "Policy label update to apply to `pipe`"
msgstr "Обновление метки политики для применения к `pipe`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2269
msgid "Apply a new label, `newlabel`, to `pipe`."
msgstr "Применить новую метку `newlabel` к `pipe`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2271
#, no-wrap
msgid "`mpo_relabel_socket`"
msgstr "`mpo_relabel_socket`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2277
#, no-wrap
msgid ""
"void mpo_relabel_socket(struct ucred *cred, struct socket *so,\n"
"    struct label *oldlabel, struct label *newlabel);\n"
msgstr ""
"void mpo_relabel_socket(struct ucred *cred, struct socket *so,\n"
"    struct label *oldlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2292
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3675
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3739
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4517
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5149
#, no-wrap
msgid "Object; socket"
msgstr "Объект; сокет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2296
#, no-wrap
msgid "Current label for `so`"
msgstr "Текущая метка для `so`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2300
#, no-wrap
msgid "Label update for `so`"
msgstr "Метка обновления для `so`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2304
msgid "Update the label on a socket from the passed socket label update."
msgstr "Обновить метку на сокете из переданного обновления метки сокета."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2306
#, no-wrap
msgid "`mpo_set_socket_peer_from_mbuf`"
msgstr "`mpo_set_socket_peer_from_mbuf`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2312
#, no-wrap
msgid ""
"void mpo_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel,\n"
"    struct label *oldlabel, struct label *newlabel);\n"
msgstr ""
"void mpo_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct label "
"*mbuflabel,\n"
"    struct label *oldlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2322
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2606
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2642
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2678
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2859
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5074
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5115
#, no-wrap
msgid "`mbuf`"
msgstr "`mbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2323
#, no-wrap
msgid "First datagram received over socket"
msgstr "Первый датаграмм, полученный через сокет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2327
#, no-wrap
msgid "Label for `mbuf`"
msgstr "Метка для `mbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2331
#, no-wrap
msgid "Current label for the socket"
msgstr "Текущая метка для сокета"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2335
#, no-wrap
msgid "Policy label to be filled out for the socket"
msgstr "Метка политики для заполнения сокета"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2340
msgid ""
"Set the peer label on a stream socket from the passed mbuf label.  This call "
"will be made when the first datagram is received by the stream socket, with "
"the exception of Unix domain sockets."
msgstr ""
"Установить метку однорангового узла на потоковом сокете из переданной метки "
"mbuf. Этот вызов будет выполнен при получении первого датаграммы потоковым "
"сокетом, за исключением сокетов домена Unix."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2342
#, no-wrap
msgid "`mpo_set_socket_peer_from_socket`"
msgstr "`mpo_set_socket_peer_from_socket`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2349
#, no-wrap
msgid ""
"void mpo_set_socket_peer_from_socket(struct socket *oldsocket,\n"
"    struct label *oldsocketlabel, struct socket *newsocket,\n"
"    struct label *newsocketpeerlabel);\n"
msgstr ""
"void mpo_set_socket_peer_from_socket(struct socket *oldsocket,\n"
"    struct label *oldsocketlabel, struct socket *newsocket,\n"
"    struct label *newsocketpeerlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2360
#, no-wrap
msgid "Local socket"
msgstr "Локальный сокет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2364
#, no-wrap
msgid "Policy label for `oldsocket`"
msgstr "Метка политики для `oldsocket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2368
#, no-wrap
msgid "Peer socket"
msgstr "Сокет однорангового узла (peer socket)"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2371
#, no-wrap
msgid "`newsocketpeerlabel`"
msgstr "`newsocketpeerlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2372
#, no-wrap
msgid "Policy label to fill in for `newsocket`"
msgstr "Метка политики для заполнения для `newsocket`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2377
msgid ""
"Set the peer label on a stream UNIX domain socket from the passed remote "
"socket endpoint.  This call will be made when the socket pair is connected, "
"and will be made for both endpoints."
msgstr ""
"Установите метку однорангового узла на потоковом UNIX-сокете из переданной "
"конечной точки удалённого сокета. Этот вызов будет выполнен при соединении "
"пары сокетов и будет произведен для обеих конечных точек."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2379
#, no-wrap
msgid "Network Object Labeling Event Operations"
msgstr "Действия с событиями меток сетевых объектов"

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2382
#, no-wrap
msgid "`mpo_create_bpfdesc`"
msgstr "`mpo_create_bpfdesc`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2388
#, no-wrap
msgid ""
"void mpo_create_bpfdesc(struct ucred *cred, struct bpf_d *bpf_d,\n"
"    struct label *bpflabel);\n"
msgstr ""
"void mpo_create_bpfdesc(struct ucred *cred, struct bpf_d *bpf_d,\n"
"    struct label *bpflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2402
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2634
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3100
#, no-wrap
msgid "`bpf_d`"
msgstr "`bpf_d`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2403
#, no-wrap
msgid "Object; bpf descriptor"
msgstr "Объект; дескриптор bpf"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2406
#, no-wrap
msgid "`bpf`"
msgstr "`bpf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2407
#, no-wrap
msgid "Policy label to be filled in for `bpf_d`"
msgstr "Метка политики для заполнения для `bpf_d`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2412
msgid ""
"Set the label on a newly created BPF descriptor from the passed subject "
"credential.  This call will be made when a BPF device node is opened by a "
"process with the passed subject credential."
msgstr ""
"Установить метку на новом дескрипторе BPF из переданных учётных данных "
"субъекта. Этот вызов будет выполнен при открытии узла устройства BPF "
"процессом с переданными учётными данными субъекта."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2414
#, no-wrap
msgid "`mpo_create_ifnet`"
msgstr "`mpo_create_ifnet`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2419
#, no-wrap
msgid "void mpo_create_ifnet(struct ifnet *ifnet, struct label *ifnetlabel);\n"
msgstr "void mpo_create_ifnet(struct ifnet *ifnet, struct label *ifnetlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2429
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2598
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2670
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2714
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2828
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3108
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3703
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5066
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5107
#, no-wrap
msgid "`ifnet`"
msgstr "`ifnet`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2430
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2599
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2671
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2715
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5067
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5108
#, no-wrap
msgid "Network interface"
msgstr "Сетевой интерфейс"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2433
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2602
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2674
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2718
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2832
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3112
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3707
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5070
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5111
#, no-wrap
msgid "`ifnetlabel`"
msgstr "`ifnetlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2434
#, no-wrap
msgid "Policy label to fill in for `ifnet`"
msgstr "Метка политики для заполнения для `ifnet`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2439
msgid ""
"Set the label on a newly created interface.  This call may be made when a "
"new physical interface becomes available to the system, or when a pseudo-"
"interface is instantiated during the boot or as a result of a user action."
msgstr ""
"Установить метку на вновь созданном интерфейсе. Этот вызов может быть "
"выполнен, когда новое физическое устройство становится доступным системе, "
"или когда псевдо-интерфейс создаётся во время загрузки или в результате "
"действия пользователя."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2441
#, no-wrap
msgid "`mpo_create_ipq`"
msgstr "`mpo_create_ipq`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2447
#, no-wrap
msgid ""
"void mpo_create_ipq(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"
msgstr ""
"void mpo_create_ipq(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2457
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2535
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2786
#, no-wrap
msgid "`fragment`"
msgstr "`fragment`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2458
#, no-wrap
msgid "First received IP fragment"
msgstr "Первый полученный IP-фрагмент"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2461
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2539
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2790
#, no-wrap
msgid "`fragmentlabel`"
msgstr "`fragmentlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2462
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2791
#, no-wrap
msgid "Policy label for `fragment`"
msgstr "Метка политики для `fragment`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2465
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2492
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2794
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2867
#, no-wrap
msgid "`ipq`"
msgstr "`ipq`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2466
#, no-wrap
msgid "IP reassembly queue to be labeled"
msgstr "Очередь повторной сборки IP, которой добавляется метка"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2469
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2496
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2798
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2871
#, no-wrap
msgid "`ipqlabel`"
msgstr "`ipqlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2470
#, no-wrap
msgid "Policy label to be filled in for `ipq`"
msgstr "Метка политики для заполнения в `ipq`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2474
msgid ""
"Set the label on a newly created IP fragment reassembly queue from the mbuf "
"header of the first received fragment."
msgstr ""
"Установить метку на вновь созданной очереди сборки IP-фрагментов из "
"заголовка mbuf первого полученного фрагмента."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2476
#, no-wrap
msgid "`mpo_create_datagram_from_ipq`"
msgstr "`mpo_create_datagram_from_ipq`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2482
#, no-wrap
msgid ""
"void mpo_create_create_datagram_from_ipq(struct ipq *ipq,\n"
"    struct label *ipqlabel, struct mbuf *datagram, struct label *datagramlabel);\n"
msgstr ""
"void mpo_create_create_datagram_from_ipq(struct ipq *ipq,\n"
"    struct label *ipqlabel, struct mbuf *datagram, struct label "
"*datagramlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2493
#, no-wrap
msgid "IP reassembly queue"
msgstr "Очередь повторной сборки IP"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2497
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2799
#, no-wrap
msgid "Policy label for `ipq`"
msgstr "Метка политики для `ipq`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2500
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2527
#, no-wrap
msgid "`datagram`"
msgstr "`datagram`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2501
#, no-wrap
msgid "Datagram to be labeled"
msgstr "Датаграмма для добавления метки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2504
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2531
#, no-wrap
msgid "`datagramlabel`"
msgstr "`datagramlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2505
#, no-wrap
msgid "Policy label to be filled in for `datagramlabel`"
msgstr "Метка политики для заполнения в `datagramlabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2509
msgid ""
"Set the label on a newly reassembled IP datagram from the IP fragment "
"reassembly queue from which it was generated."
msgstr ""
"Установите метку на вновь собранный IP-датаграмму из очереди сборки IP-"
"фрагментов, из которой он был сгенерирован."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2511
#, no-wrap
msgid "`mpo_create_fragment`"
msgstr "`mpo_create_fragment`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2517
#, no-wrap
msgid ""
"void mpo_create_fragment(struct mbuf *datagram, struct label *datagramlabel,\n"
"    struct mbuf *fragment, struct label *fragmentlabel);\n"
msgstr ""
"void mpo_create_fragment(struct mbuf *datagram, struct label *datagramlabel,"
"\n"
"    struct mbuf *fragment, struct label *fragmentlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2528
#, no-wrap
msgid "Datagram"
msgstr "Датаграмма"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2532
#, no-wrap
msgid "Policy label for `datagram`"
msgstr "Метка политики для `datagram`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2536
#, no-wrap
msgid "Fragment to be labeled"
msgstr "Фрагмент, которому будет установлена метка"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2540
#, no-wrap
msgid "Policy label to be filled in for `datagram`"
msgstr "Метка политики для заполнения для `datagram`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2544
msgid ""
"Set the label on the mbuf header of a newly created IP fragment from the "
"label on the mbuf header of the datagram it was generate from."
msgstr ""
"Установить метку на заголовке mbuf вновь созданного IP-фрагмента из метки на "
"заголовке mbuf датаграммы, из которой он был сгенерирован."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2546
#, no-wrap
msgid "`mpo_create_mbuf_from_mbuf`"
msgstr "`mpo_create_mbuf_from_mbuf`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2552
#, no-wrap
msgid ""
"void mpo_create_mbuf_from_mbuf(struct mbuf *oldmbuf, struct label *oldmbuflabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_from_mbuf(struct mbuf *oldmbuf, struct label "
"*oldmbuflabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2562
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2706
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2750
#, no-wrap
msgid "`oldmbuf`"
msgstr "`oldmbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2563
#, no-wrap
msgid "Existing (source) mbuf"
msgstr "Существующий (исходный) mbuf"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2566
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2710
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2754
#, no-wrap
msgid "`oldmbuflabel`"
msgstr "`oldmbuflabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2567
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2711
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2755
#, no-wrap
msgid "Policy label for `oldmbuf`"
msgstr "Метка политики для `oldmbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2570
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2722
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2758
#, no-wrap
msgid "`newmbuf`"
msgstr "`newmbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2571
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2643
#, no-wrap
msgid "New mbuf to be labeled"
msgstr "Новый mbuf для добавления метки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2574
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2726
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2762
#, no-wrap
msgid "`newmbuflabel`"
msgstr "`newmbuflabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2575
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2727
#, no-wrap
msgid "Policy label to be filled in for `newmbuf`"
msgstr "Метка политики для заполнения в `newmbuf`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2580
msgid ""
"Set the label on the mbuf header of a newly created datagram from the mbuf "
"header of an existing datagram.  This call may be made in a number of "
"situations, including when an mbuf is re-allocated for alignment purposes."
msgstr ""
"Установить метку в заголовке mbuf для вновь созданной датаграммы на основе "
"заголовка mbuf существующей датаграммы. Этот вызов может быть выполнен в "
"ряде ситуаций, включая случаи, когда для mbuf заново выделяется память для "
"целей выравнивания."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2582
#, no-wrap
msgid "`mpo_create_mbuf_linklayer`"
msgstr "`mpo_create_mbuf_linklayer`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2588
#, no-wrap
msgid ""
"void mpo_create_mbuf_linklayer(struct ifnet *ifnet, struct label *ifnetlabel,\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_linklayer(struct ifnet *ifnet, struct label *ifnetlabel,"
"\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2603
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2719
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2833
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3113
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5071
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5112
#, no-wrap
msgid "Policy label for `ifnet`"
msgstr "Метка политики для `ifnet`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2607
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2679
#, no-wrap
msgid "mbuf header for new datagram"
msgstr "заголовок mbuf для новой датаграммы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2611
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2683
#, no-wrap
msgid "Policy label to be filled in for `mbuf`"
msgstr "Метка политики для заполнения для `mbuf`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2616
msgid ""
"Set the label on the mbuf header of a newly created datagram generated for "
"the purposes of a link layer response for the passed interface.  This call "
"may be made in a number of situations, including for ARP or ND6 responses in "
"the IPv4 and IPv6 stacks."
msgstr ""
"Установить метку в заголовке mbuf для вновь созданной датаграммы, "
"сгенерированного для целей ответа на канальном уровне для переданного "
"интерфейса. Этот вызов может быть выполнен в ряде ситуаций, включая ответы "
"ARP или ND6 в стеках IPv4 и IPv6."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2618
#, no-wrap
msgid "`mpo_create_mbuf_from_bpfdesc`"
msgstr "`mpo_create_mbuf_from_bpfdesc`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2624
#, no-wrap
msgid ""
"void mpo_create_mbuf_from_bpfdesc(struct bpf_d *bpf_d, struct label *bpflabel,\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_from_bpfdesc(struct bpf_d *bpf_d, struct label "
"*bpflabel,\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2635
#, no-wrap
msgid "BPF descriptor"
msgstr "Дескриптор BPF"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2638
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3104
#, no-wrap
msgid "`bpflabel`"
msgstr "`bpflabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2639
#, no-wrap
msgid "Policy label for `bpflabel`"
msgstr "Метка политики для `bpflabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2647
#, no-wrap
msgid "Policy label to fill in for `mbuf`"
msgstr "Метка политики для заполнения `mbuf`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2652
msgid ""
"Set the label on the mbuf header of a newly created datagram generated using "
"the passed BPF descriptor.  This call is made when a write is performed to "
"the BPF device associated with the passed BPF descriptor."
msgstr ""
"Установить метку на заголовок mbuf вновь созданной датаграммы, "
"сгенерированной с использованием переданного дескриптора BPF. Этот вызов "
"выполняется при записи в устройство BPF, связанное с переданным дескриптором "
"BPF."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2654
#, no-wrap
msgid "`mpo_create_mbuf_from_ifnet`"
msgstr "`mpo_create_mbuf_from_ifnet`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2660
#, no-wrap
msgid ""
"void mpo_create_mbuf_from_ifnet(struct ifnet *ifnet, struct label *ifnetlabel,\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_from_ifnet(struct ifnet *ifnet, struct label "
"*ifnetlabel,\n"
"    struct mbuf *mbuf, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2675
#, no-wrap
msgid "Policy label for `ifnetlabel`"
msgstr "Метка политики для `ifnetlabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2687
msgid ""
"Set the label on the mbuf header of a newly created datagram generated from "
"the passed network interface."
msgstr ""
"Установить метку на заголовке mbuf вновь созданной датаграммы, "
"сгенерированной из переданного сетевого интерфейса."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2689
#, no-wrap
msgid "`mpo_create_mbuf_multicast_encap`"
msgstr "`mpo_create_mbuf_multicast_encap`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2696
#, no-wrap
msgid ""
"void mpo_create_mbuf_multicast_encap(struct mbuf *oldmbuf,\n"
"    struct label *oldmbuflabel, struct ifnet *ifnet, struct label *ifnetlabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_multicast_encap(struct mbuf *oldmbuf,\n"
"    struct label *oldmbuflabel, struct ifnet *ifnet, struct label "
"*ifnetlabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2707
#, no-wrap
msgid "mbuf header for existing datagram"
msgstr "Заголовок mbuf для существующего датаграммы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2723
#, no-wrap
msgid "mbuf header to be labeled for new datagram"
msgstr "Заголовок mbuf для пометки новой датаграммы"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2732
msgid ""
"Set the label on the mbuf header of a newly created datagram generated from "
"the existing passed datagram when it is processed by the passed multicast "
"encapsulation interface.  This call is made when an mbuf is to be delivered "
"using the virtual interface."
msgstr ""
"Установить метку в заголовке mbuf для вновь созданной датаграммы, "
"сгенерированной из существующей переданной датаграммы, при её обработке "
"переданным интерфейсом мультикастовой инкапсуляции. Этот вызов происходит "
"при доставке mbuf с использованием виртуального интерфейса."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2734
#, no-wrap
msgid "`mpo_create_mbuf_netlayer`"
msgstr "`mpo_create_mbuf_netlayer`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2740
#, no-wrap
msgid ""
"void mpo_create_mbuf_netlayer(struct mbuf *oldmbuf, struct label *oldmbuflabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"
msgstr ""
"void mpo_create_mbuf_netlayer(struct mbuf *oldmbuf, struct label "
"*oldmbuflabel,\n"
"    struct mbuf *newmbuf, struct label *newmbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2751
#, no-wrap
msgid "Received datagram"
msgstr "Полученная датаграмма"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2759
#, no-wrap
msgid "Newly created datagram"
msgstr "Вновь созданная датаграмма"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2763
#, no-wrap
msgid "Policy label for `newmbuf`"
msgstr "Метка политики для `newmbuf`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2768
msgid ""
"Set the label on the mbuf header of a newly created datagram generated by "
"the IP stack in response to an existing received datagram (`oldmbuf`).  This "
"call may be made in a number of situations, including when responding to "
"ICMP request datagrams."
msgstr ""
"Установить метку на заголовок mbuf вновь созданной датаграммы, "
"сгенерированной стеком IP в ответ на полученную датаграмму (`oldmbuf`). Этот "
"вызов может быть выполнен в различных ситуациях, включая ответ на датаграммы "
"ICMP-запросов."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2770
#, no-wrap
msgid "`mpo_fragment_match`"
msgstr "`mpo_fragment_match`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2776
#, no-wrap
msgid ""
"int mpo_fragment_match(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"
msgstr ""
"int mpo_fragment_match(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2787
#, no-wrap
msgid "IP datagram fragment"
msgstr "Фрагмент IP-датаграммы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2795
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2868
#, no-wrap
msgid "IP fragment reassembly queue"
msgstr "Очередь сборки IP-фрагментов"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2806
msgid ""
"Determine whether an mbuf header containing an IP datagram (`fragment`) "
"fragment matches the label of the passed IP fragment reassembly queue "
"(`ipq`).  Return (1) for a successful match, or (0) for no match.  This call "
"is made when the IP stack attempts to find an existing fragment reassembly "
"queue for a newly received fragment; if this fails, a new fragment "
"reassembly queue may be instantiated for the fragment.  Policies may use "
"this entry point to prevent the reassembly of otherwise matching IP "
"fragments if policy does not permit them to be reassembled based on the "
"label or other information."
msgstr ""
"Определить, соответствует ли заголовок mbuf, содержащий фрагмент IP-"
"датаграммы (`fragment`), метке переданной очереди сборки IP-фрагментов "
"(`ipq`). Возвращает (1) при успешном совпадении или (0) при отсутствии "
"совпадения. Этот вызов выполняется, когда IP-стек пытается найти "
"существующую очередь сборки фрагментов для вновь полученного фрагмента; если "
"поиск не удаётся, для фрагмента может быть создана новая очередь сборки. "
"Политики могут использовать эту точку входа, чтобы предотвратить сборку в "
"остальном подходящих IP-фрагментов, если политика не разрешает их сборку на "
"основе метки или другой информации."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2808
#, no-wrap
msgid "`mpo_relabel_ifnet`"
msgstr "`mpo_relabel_ifnet`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2814
#, no-wrap
msgid ""
"void mpo_relabel_ifnet(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct label *newlabel);\n"
msgstr ""
"void mpo_relabel_ifnet(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2829
#, no-wrap
msgid "Object; Network interface"
msgstr "Объект; Сетевой интерфейс"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2837
#, no-wrap
msgid "Label update to apply to `ifnet`"
msgstr "Метка обновления для применения к `ifnet`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2841
msgid ""
"Update the label of network interface, `ifnet`, based on the passed update "
"label, `newlabel`, and the passed subject credential, `cred`."
msgstr ""
"Обновить метку сетевого интерфейса, `ifnet`, на основе переданной новой "
"метки, `newlabel`, и переданных учётных данных субъекта, `cred`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2843
#, no-wrap
msgid "`mpo_update_ipq`"
msgstr "`mpo_update_ipq`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2849
#, no-wrap
msgid ""
"void mpo_update_ipq(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"
msgstr ""
"void mpo_update_ipq(struct mbuf *fragment, struct label *fragmentlabel,\n"
"    struct ipq *ipq, struct label *ipqlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2860
#, no-wrap
msgid "IP fragment"
msgstr "IP фрагмент"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2864
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5079
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5120
#, no-wrap
msgid "Policy label for `mbuf`"
msgstr "Метка политики для `mbuf`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2872
#, no-wrap
msgid "Policy label to be updated for `ipq`"
msgstr "Метка политики для обновления для `ipq`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2876
msgid ""
"Update the label on an IP fragment reassembly queue (`ipq`) based on the "
"acceptance of the passed IP fragment mbuf header (`mbuf`)."
msgstr ""
"Обновить метку в очереди сборки IP-фрагментов (`ipq`) на основе принятия "
"переданного заголовка IP-фрагмента mbuf (`mbuf`)."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2878
#, no-wrap
msgid "Process Labeling Event Operations"
msgstr "Действия с событиями меток процессов"

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2881
#, no-wrap
msgid "`mpo_create_cred`"
msgstr "`mpo_create_cred`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2886
#, no-wrap
msgid "void mpo_create_cred(struct ucred *parent_cred, struct ucred *child_cred);\n"
msgstr ""
"void mpo_create_cred(struct ucred *parent_cred, struct ucred *child_cred);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2896
#, no-wrap
msgid "`parent_cred`"
msgstr "`parent_cred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2897
#, no-wrap
msgid "Parent subject credential"
msgstr "Учётные данные субъекта‐родителя"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2900
#, no-wrap
msgid "`child_cred`"
msgstr "`child_cred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2901
#, no-wrap
msgid "Child subject credential"
msgstr "Учётные данные дочернего субъекта"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2907
msgid ""
"Set the label of a newly created subject credential from the passed subject "
"credential.  This call will be made when man:crcopy[9] is invoked on a newly "
"created `struct ucred`.  This call should not be confused with a process "
"forking or creation event."
msgstr ""
"Установить метку вновь созданного субъекта из переданного субъекта. Этот "
"вызов будет выполнен при вызове man:crcopy[9] для только что созданной "
"структуры `struct ucred`. Этот вызов не следует путать с событием создания "
"или ветвления процесса."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2909
#, no-wrap
msgid "`mpo_execve_transition`"
msgstr "`mpo_execve_transition`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2915
#, no-wrap
msgid ""
"void mpo_execve_transition(struct ucred *old, struct ucred *new,\n"
"    struct vnode *vp, struct label *vnodelabel);\n"
msgstr ""
"void mpo_execve_transition(struct ucred *old, struct ucred *new,\n"
"    struct vnode *vp, struct label *vnodelabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2926
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2964
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5321
#, no-wrap
msgid "`old`"
msgstr "`old`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2927
#, no-wrap
msgid "Existing subject credential"
msgstr "Учётные данные существующего субъекта"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2930
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5333
#, no-wrap
msgid "`new`"
msgstr "`new`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2931
#, no-wrap
msgid "New subject credential to be labeled"
msgstr "Учётные данные нового субъекта для добавления метки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2935
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2969
#, no-wrap
msgid "File to execute"
msgstr "Файл для выполнения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2946
msgid ""
"Update the label of a newly created subject credential (`new`) from the "
"passed existing subject credential (`old`) based on a label transition "
"caused by executing the passed vnode (`vp`).  This call occurs when a "
"process executes the passed vnode and one of the policies returns a success "
"from the `mpo_execve_will_transition` entry point.  Policies may choose to "
"implement this call simply by invoking `mpo_create_cred` and passing the two "
"subject credentials so as not to implement a transitioning event.  Policies "
"should not leave this entry point unimplemented if they implement "
"`mpo_create_cred`, even if they do not implement "
"`mpo_execve_will_transition`."
msgstr ""
"Обновить метку учётных данных вновь созданного субъекта (`new`) на основе "
"переданных учётных данных существующего субъекта (`old`) в соответствии с "
"переходом метки, вызванным выполнением переданного vnode (`vp`). Этот вызов "
"происходит, когда процесс выполняет переданный vnode, и одна из политик "
"возвращает успех из точки входа `mpo_execve_will_transition`. Политики могут "
"выбрать реализацию этого вызова просто путем вызова `mpo_create_cred` и "
"передачи двух субъектов учётных данных, чтобы не реализовывать событие "
"перехода. Политики не должны оставлять эту точку входа нереализованной, если "
"они реализуют `mpo_create_cred`, даже если они не реализуют "
"`mpo_execve_will_transition`."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2948
#, no-wrap
msgid "`mpo_execve_will_transition`"
msgstr "`mpo_execve_will_transition`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2954
#, no-wrap
msgid ""
"int mpo_execve_will_transition(struct ucred *old, struct vnode *vp,\n"
"    struct label *vnodelabel);\n"
msgstr ""
"int mpo_execve_will_transition(struct ucred *old, struct vnode *vp,\n"
"    struct label *vnodelabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2965
#, no-wrap
msgid "Subject credential prior to man:execve[2]"
msgstr "Учётные данные субъекта перед man:execve[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2979
msgid ""
"Determine whether the policy will want to perform a transition event as a "
"result of the execution of the passed vnode by the passed subject "
"credential.  Return 1 if a transition is required, 0 if not.  Even if a "
"policy returns 0, it should behave correctly in the presence of an "
"unexpected invocation of `mpo_execve_transition`, as that call may happen as "
"a result of another policy requesting a transition."
msgstr ""
"Определить, будет ли политика выполнять событие перехода в результате "
"выполнения переданного vnode с использованием переданных учётных данных "
"субъекта. Вернуть 1, если переход требуется, и 0, если нет. Даже если "
"политика возвращает 0, она должна корректно обрабатывать неожиданный вызов "
"`mpo_execve_transition`, так как этот вызов может произойти из-за запроса "
"перехода другой политикой."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2981
#, no-wrap
msgid "`mpo_create_proc0`"
msgstr "`mpo_create_proc0`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2986
#, no-wrap
msgid "void mpo_create_proc0(struct ucred *cred);\n"
msgstr "void mpo_create_proc0(struct ucred *cred);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:2997
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3019
#, no-wrap
msgid "Subject credential to be filled in"
msgstr "Учётные данные субъекта для заполнения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3001
msgid ""
"Create the subject credential of process 0, the parent of all kernel "
"processes."
msgstr ""
"Создать учётные данные субъекта процесса 0, родителя всех процессов ядра."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3003
#, no-wrap
msgid "`mpo_create_proc1`"
msgstr "`mpo_create_proc1`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3008
#, no-wrap
msgid "void mpo_create_proc1(struct ucred *cred);\n"
msgstr "void mpo_create_proc1(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3023
msgid ""
"Create the subject credential of process 1, the parent of all user processes."
msgstr ""
"Создать учётные данные субъекта процесса 1, родителя всех пользовательских "
"процессов."

#. type: Title =====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3025
#, no-wrap
msgid "`mpo_relabel_cred`"
msgstr "`mpo_relabel_cred`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3030
#, no-wrap
msgid "void mpo_relabel_cred(struct ucred *cred, struct label *newlabel);\n"
msgstr "void mpo_relabel_cred(struct ucred *cred, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3045
#, no-wrap
msgid "Label update to apply to `cred`"
msgstr "Обновление метки для применения к `cred`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3049
msgid "Update the label on a subject credential from the passed update label."
msgstr ""
"Обновить метку на учётных данных субъекта из переданной обновляемой метки."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3051
#, no-wrap
msgid "Access Control Checks"
msgstr "Проверки контроля доступа"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3059
msgid ""
"Access control entry points permit policy modules to influence access "
"control decisions made by the kernel.  Generally, although not always, "
"arguments to an access control entry point will include one or more "
"authorizing credentials, information (possibly including a label) for any "
"other objects involved in the operation.  An access control entry point may "
"return 0 to permit the operation, or an man:errno[2] error value.  The "
"results of invoking the entry point across various registered policy modules "
"will be composed as follows: if all modules permit the operation to succeed, "
"success will be returned.  If one or modules returns a failure, a failure "
"will be returned.  If more than one module returns a failure, the errno "
"value to return to the user will be selected using the following precedence, "
"implemented by the `error_select()` function in [.filename]#kern_mac.c#:"
msgstr ""
"Точки входа контроля доступа позволяют модулям политики влиять на решения по "
"контролю доступа, принимаемые ядром. Обычно, хотя и не всегда, аргументы "
"точки входа контроля доступа включают одно или несколько удостоверяющих "
"полномочий, информацию (возможно, включая метку) для любых других объектов, "
"участвующих в операции. Точка входа контроля доступа может вернуть 0 для "
"разрешения операции или значение ошибки man:errno[2]. Результаты вызова "
"точки входа через различные зарегистрированные модули политики будут "
"объединены следующим образом: если все модули разрешают успешное выполнение "
"операции, будет возвращен успех. Если один или несколько модулей возвращают "
"ошибку, будет возвращена ошибка. Если более одного модуля возвращают ошибку, "
"значение errno, которое будет возвращено пользователю, выбирается с "
"использованием следующего приоритета, реализованного функцией "
"`error_select()` в [.filename]#kern_mac.c#:"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3065
#, no-wrap
msgid "Most precedence"
msgstr "Наивысший приоритет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3067
#, no-wrap
msgid "EDEADLK"
msgstr "EDEADLK"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3070
#, no-wrap
msgid "EINVAL"
msgstr "EINVAL"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3073
#, no-wrap
msgid "ESRCH"
msgstr "ESRCH"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3076
#, no-wrap
msgid "EACCES"
msgstr "EACCES"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3077
#, no-wrap
msgid "Least precedence"
msgstr "Наименьший приоритет"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3078
#, no-wrap
msgid "EPERM"
msgstr "EPERM"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3082
msgid ""
"If none of the error values returned by all modules are listed in the "
"precedence chart then an arbitrarily selected value from the set will be "
"returned.  In general, the rules provide precedence to errors in the "
"following order: kernel failures, invalid arguments, object not present, "
"access not permitted, other."
msgstr ""
"Если ни одно из значений ошибок, возвращаемых всеми модулями, не указано в "
"таблице приоритетов, будет возвращено произвольно выбранное значение из "
"набора. В общем случае правила устанавливают следующий порядок приоритетов "
"ошибок: сбои ядра, неверные аргументы, отсутствие объекта, отсутствие "
"доступа, прочие."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3084
#, no-wrap
msgid "`mpo_check_bpfdesc_receive`"
msgstr "`mpo_check_bpfdesc_receive`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3090
#, no-wrap
msgid ""
"int mpo_check_bpfdesc_receive(struct bpf_d *bpf_d, struct label *bpflabel,\n"
"    struct ifnet *ifnet, struct label *ifnetlabel);\n"
msgstr ""
"int mpo_check_bpfdesc_receive(struct bpf_d *bpf_d, struct label *bpflabel,\n"
"    struct ifnet *ifnet, struct label *ifnetlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3101
#, no-wrap
msgid "Subject; BPF descriptor"
msgstr "Субъект; Дескриптор BPF"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3105
#, no-wrap
msgid "Policy label for `bpf_d`"
msgstr "Метка политики для `bpf_d`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3109
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3704
#, no-wrap
msgid "Object; network interface"
msgstr "Объект; сетевой интерфейс"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3118
msgid ""
"Determine whether the MAC framework should permit datagrams from the passed "
"interface to be delivered to the buffers of the passed BPF descriptor.  "
"Return (0) for success, or an `errno` value for failure Suggested failure: "
"EACCES for label mismatches, EPERM for lack of privilege."
msgstr ""
"Определить, должен ли framework MAC разрешать доставку датаграмм с "
"переданного интерфейса в буферы переданного BPF-дескриптора. Возвращает (0) "
"при успехе или значение `errno` при ошибке. Рекомендуемые ошибки: EACCES при "
"несоответствии меток, EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3120
#, no-wrap
msgid "`mpo_check_kenv_dump`"
msgstr "`mpo_check_kenv_dump`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3125
#, no-wrap
msgid "int mpo_check_kenv_dump(struct ucred *cred);\n"
msgstr "int mpo_check_kenv_dump(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3140
msgid ""
"Determine whether the subject should be allowed to retrieve the kernel "
"environment (see man:kenv[2])."
msgstr ""
"Определить, следует ли разрешить субъекту получать доступ к окружению ядра ("
"см. man:kenv[2])."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3142
#, no-wrap
msgid "`mpo_check_kenv_get`"
msgstr "`mpo_check_kenv_get`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3147
#, no-wrap
msgid "int mpo_check_kenv_get(struct ucred *cred, char *name);\n"
msgstr "int mpo_check_kenv_get(struct ucred *cred, char *name);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3161
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3187
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3213
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4209
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4776
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5313
#, no-wrap
msgid "`name`"
msgstr "`name`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3162
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3188
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3214
#, no-wrap
msgid "Kernel environment variable name"
msgstr "Имя переменной окружения ядра"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3166
msgid ""
"Determine whether the subject should be allowed to retrieve the value of the "
"specified kernel environment variable."
msgstr ""
"Определить, следует ли разрешить субъекту получать значение указанной "
"переменной окружения ядра."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3168
#, no-wrap
msgid "`mpo_check_kenv_set`"
msgstr "`mpo_check_kenv_set`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3173
#, no-wrap
msgid "int mpo_check_kenv_set(struct ucred *cred, char *name);\n"
msgstr "int mpo_check_kenv_set(struct ucred *cred, char *name);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3192
msgid ""
"Determine whether the subject should be allowed to set the specified kernel "
"environment variable."
msgstr ""
"Определить, следует ли разрешить субъекту устанавливать указанную переменную "
"окружения ядра."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3194
#, no-wrap
msgid "`mpo_check_kenv_unset`"
msgstr "`mpo_check_kenv_unset`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3199
#, no-wrap
msgid "int mpo_check_kenv_unset(struct ucred *cred, char *name);\n"
msgstr "int mpo_check_kenv_unset(struct ucred *cred, char *name);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3218
msgid ""
"Determine whether the subject should be allowed to unset the specified "
"kernel environment variable."
msgstr ""
"Определить, следует ли разрешить субъекту сбросить указанную переменную "
"окружения ядра."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3220
#, no-wrap
msgid "`mpo_check_kld_load`"
msgstr "`mpo_check_kld_load`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3226
#, no-wrap
msgid ""
"int mpo_check_kld_load(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel);\n"
msgstr ""
"int mpo_check_kld_load(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3241
#, no-wrap
msgid "Kernel module vnode"
msgstr "vnode модуля ядра"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3245
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5186
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5287
#, no-wrap
msgid "Label associated with `vp`"
msgstr "Метка, связанная с `vp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3249
msgid ""
"Determine whether the subject should be allowed to load the specified module "
"file."
msgstr ""
"Определить, следует ли разрешить субъекту загружать указанный файл модуля."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3251
#, no-wrap
msgid "`mpo_check_kld_stat`"
msgstr "`mpo_check_kld_stat`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3256
#, no-wrap
msgid "int mpo_check_kld_stat(struct ucred *cred);\n"
msgstr "int mpo_check_kld_stat(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3271
msgid ""
"Determine whether the subject should be allowed to retrieve a list of loaded "
"kernel module files and associated statistics."
msgstr ""
"Определить, следует ли разрешить субъекту получать список загруженных файлов "
"модулей ядра и связанную с ними статистику."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3273
#, no-wrap
msgid "`mpo_check_kld_unload`"
msgstr "`mpo_check_kld_unload`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3278
#, no-wrap
msgid "int mpo_check_kld_unload(struct ucred *cred);\n"
msgstr "int mpo_check_kld_unload(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3293
msgid ""
"Determine whether the subject should be allowed to unload a kernel module."
msgstr "Определить, следует ли разрешить субъекту выгружать модуль ядра."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3295
#, no-wrap
msgid "`mpo_check_pipe_ioctl`"
msgstr "`mpo_check_pipe_ioctl`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3301
#, no-wrap
msgid ""
"int mpo_check_pipe_ioctl(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel, unsigned long cmd, void *data);\n"
msgstr ""
"int mpo_check_pipe_ioctl(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel, unsigned long cmd, void *data);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3323
#, no-wrap
msgid "`cmd`"
msgstr "`cmd`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3324
#, no-wrap
msgid "man:ioctl[2] command"
msgstr "команда nman:ioctl[2]"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3327
#, no-wrap
msgid "`data`"
msgstr "`data`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3328
#, no-wrap
msgid "man:ioctl[2] data"
msgstr "данные man:ioctl[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3332
msgid ""
"Determine whether the subject should be allowed to make the specified "
"man:ioctl[2] call."
msgstr ""
"Определить, следует ли разрешить субъекту выполнять указанный вызов "
"man:ioctl[2]."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3334
#, no-wrap
msgid "`mpo_check_pipe_poll`"
msgstr "`mpo_check_pipe_poll`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3340
#, no-wrap
msgid ""
"int mpo_check_pipe_poll(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"
msgstr ""
"int mpo_check_pipe_poll(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3363
msgid "Determine whether the subject should be allowed to poll `pipe`."
msgstr "Определить, следует ли разрешить субъекту опрашивать `pipe`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3365
#, no-wrap
msgid "`mpo_check_pipe_read`"
msgstr "`mpo_check_pipe_read`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3371
#, no-wrap
msgid ""
"int mpo_check_pipe_read(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"
msgstr ""
"int mpo_check_pipe_read(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3394
msgid "Determine whether the subject should be allowed read access to `pipe`."
msgstr "Определить, следует ли разрешить субъекту доступ на чтение к `pipe`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3396
#, no-wrap
msgid "`mpo_check_pipe_relabel`"
msgstr "`mpo_check_pipe_relabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3402
#, no-wrap
msgid ""
"int mpo_check_pipe_relabel(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel, struct label *newlabel);\n"
msgstr ""
"int mpo_check_pipe_relabel(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3425
#, no-wrap
msgid "Label update to `pipelabel`"
msgstr "Обновление метки до `pipelabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3429
msgid "Determine whether the subject should be allowed to relabel `pipe`."
msgstr "Определить, следует ли разрешить субъекту изменять метку `pipe`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3431
#, no-wrap
msgid "`mpo_check_pipe_stat`"
msgstr "`mpo_check_pipe_stat`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3437
#, no-wrap
msgid ""
"int mpo_check_pipe_stat(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"
msgstr ""
"int mpo_check_pipe_stat(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3460
msgid ""
"Determine whether the subject should be allowed to retrieve statistics "
"related to `pipe`."
msgstr ""
"Определить, следует ли разрешить субъекту получать статистику, связанную с "
"`pipe`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3462
#, no-wrap
msgid "`mpo_check_pipe_write`"
msgstr "`mpo_check_pipe_write`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3468
#, no-wrap
msgid ""
"int mpo_check_pipe_write(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"
msgstr ""
"int mpo_check_pipe_write(struct ucred *cred, struct pipe *pipe,\n"
"    struct label *pipelabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3491
msgid "Determine whether the subject should be allowed to write to `pipe`."
msgstr "Определить, следует ли разрешить субъекту запись в `pipe`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3493
#, no-wrap
msgid "`mpo_check_socket_bind`"
msgstr "`mpo_check_socket_bind`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3499
#, no-wrap
msgid ""
"int mpo_check_socket_bind(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct sockaddr *sockaddr);\n"
msgstr ""
"int mpo_check_socket_bind(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct sockaddr *sockaddr);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3514
#, no-wrap
msgid "Socket to be bound"
msgstr "Сокет для привязки"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3521
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3554
#, no-wrap
msgid "`sockaddr`"
msgstr "`sockaddr`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3522
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3555
#, no-wrap
msgid "Address of `socket`"
msgstr "Адрес `socket`"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3526
#, no-wrap
msgid "`mpo_check_socket_connect`"
msgstr "`mpo_check_socket_connect`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3532
#, no-wrap
msgid ""
"int mpo_check_socket_connect(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct sockaddr *sockaddr);\n"
msgstr ""
"int mpo_check_socket_connect(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct sockaddr *sockaddr);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3547
#, no-wrap
msgid "Socket to be connected"
msgstr "Сокет для подключения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3561
msgid ""
"Determine whether the subject credential (`cred`) can connect the passed "
"socket (`socket`) to the passed socket address (`sockaddr`).  Return 0 for "
"success, or an `errno` value for failure.  Suggested failure: EACCES for "
"label mismatches, EPERM for lack of privilege."
msgstr ""
"Определить, может ли субъект с учётными данными (`cred`) подключить "
"переданный сокет (`socket`) к переданному адресу сокета (`sockaddr`). "
"Возвращает 0 при успехе или значение `errno` при ошибке. Рекомендуемые "
"ошибки: EACCES при несоответствии меток, EPERM при отсутствии прав."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3563
#, no-wrap
msgid "`mpo_check_socket_receive`"
msgstr "`mpo_check_socket_receive`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3569
#, no-wrap
msgid ""
"int mpo_check_socket_receive(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"
msgstr ""
"int mpo_check_socket_receive(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3588
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3619
#, no-wrap
msgid "Policy label associated with `so`"
msgstr "Метка политики, связанная с `so`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3592
msgid ""
"Determine whether the subject should be allowed to receive information from "
"the socket `so`."
msgstr ""
"Определить, следует ли разрешить субъекту получать информацию из сокета `so`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3594
#, no-wrap
msgid "`mpo_check_socket_send`"
msgstr "`mpo_check_socket_send`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3600
#, no-wrap
msgid ""
"int mpo_check_socket_send(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"
msgstr ""
"int mpo_check_socket_send(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3623
msgid ""
"Determine whether the subject should be allowed to send information across "
"the socket `so`."
msgstr ""
"Определить, следует ли разрешить субъекту передавать информацию через сокет "
"`so`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3625
#, no-wrap
msgid "`mpo_check_cred_visible`"
msgstr "`mpo_check_cred_visible`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3630
#, no-wrap
msgid "int mpo_check_cred_visible(struct ucred *u1, struct ucred *u2);\n"
msgstr "int mpo_check_cred_visible(struct ucred *u1, struct ucred *u2);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3640
#, no-wrap
msgid "`u1`"
msgstr "`u1`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3644
#, no-wrap
msgid "`u2`"
msgstr "`u2`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3645
#, no-wrap
msgid "Object credential"
msgstr "Учётные данные объекта"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3652
msgid ""
"Determine whether the subject credential `u1` can \"see\" other subjects "
"with the passed subject credential `u2`.  Return 0 for success, or an "
"`errno` value for failure.  Suggested failure: EACCES for label mismatches, "
"EPERM for lack of privilege, or ESRCH to hide visibility.  This call may be "
"made in a number of situations, including inter-process status sysctl's used "
"by `ps`, and in procfs lookups."
msgstr ""
"Определить, может ли субъект с учётными данными `u1` \"видеть\" другие "
"субъекты с переданными учётными данными `u2`. Возвращает 0 при успехе или "
"значение `errno` при ошибке. Рекомендуемые ошибки: EACCES при несоответствии "
"меток, EPERM при отсутствии привилегий или ESRCH для скрытия видимости. Этот "
"вызов может выполняться в различных ситуациях, включая системные вызовы "
"состояния межпроцессного взаимодействия, используемые `ps`, и при поиске в "
"procfs."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3654
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5128
#, no-wrap
msgid "`mpo_check_socket_visible`"
msgstr "`mpo_check_socket_visible`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3660
#, no-wrap
msgid ""
"int mpo_check_socket_visible(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel);\n"
msgstr ""
"int mpo_check_socket_visible(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel);\n"

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3683
#, no-wrap
msgid "`mpo_check_ifnet_relabel`"
msgstr "`mpo_check_ifnet_relabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3689
#, no-wrap
msgid ""
"int mpo_check_ifnet_relabel(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct label *newlabel);\n"
msgstr ""
"int mpo_check_ifnet_relabel(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3708
#, no-wrap
msgid "Existing policy label for `ifnet`"
msgstr "Существующая метка политики для `ifnet`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3712
#, no-wrap
msgid "Policy label update to later be applied to `ifnet`"
msgstr "Обновление метки политики для последующего применения к `ifnet`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3716
msgid ""
"Determine whether the subject credential can relabel the passed network "
"interface to the passed label update."
msgstr ""
"Определить, может ли учётные данные субъекта перемаркировать переданный "
"сетевой интерфейс в соответствии с переданным обновлением метки."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3718
#, no-wrap
msgid "`mpo_check_socket_relabel`"
msgstr "`mpo_check_socket_relabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3724
#, no-wrap
msgid ""
"int mpo_check_socket_relabel(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct label *newlabel);\n"
msgstr ""
"int mpo_check_socket_relabel(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3743
#, no-wrap
msgid "Existing policy label for `socket`"
msgstr "Метка существующей политики для `socket`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3747
#, no-wrap
msgid "Label update to later be applied to `socketlabel`"
msgstr "Обновление метки для последующего применения к `socketlabel`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3751
msgid ""
"Determine whether the subject credential can relabel the passed socket to "
"the passed label update."
msgstr ""
"Определить, могут ли учётные данные субъекта перемаркировать переданный "
"сокет в соответствии с переданным обновлением метки."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3753
#, no-wrap
msgid "`mpo_check_cred_relabel`"
msgstr "`mpo_check_cred_relabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3758
#, no-wrap
msgid "int mpo_check_cred_relabel(struct ucred *cred, struct label *newlabel);\n"
msgstr ""
"int mpo_check_cred_relabel(struct ucred *cred, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3773
#, no-wrap
msgid "Label update to later be applied to `cred`"
msgstr "Обновление метки для последующего применения к `cred`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3777
msgid ""
"Determine whether the subject credential can relabel itself to the passed "
"label update."
msgstr ""
"Определить, могут ли учётные данные субъекта перемаркировать себя в "
"соответствии с переданным обновлением метки."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3779
#, no-wrap
msgid "`mpo_check_vnode_relabel`"
msgstr "`mpo_check_vnode_relabel`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3785
#, no-wrap
msgid ""
"int mpo_check_vnode_relabel(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vnodelabel, struct label *newlabel);\n"
msgstr ""
"int mpo_check_vnode_relabel(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vnodelabel, struct label *newlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3800
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3898
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4000
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4090
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4161
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4198
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4550
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4587
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4657
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4691
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4724
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4765
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4813
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4850
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4887
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5032
#, no-wrap
msgid "Object; vnode"
msgstr "Объект; vnode"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3808
#, no-wrap
msgid "Policy label update to later be applied to `vp`"
msgstr "Обновление метки политики для последующего применения к `vp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3812
msgid ""
"Determine whether the subject credential can relabel the passed vnode to the "
"passed label update."
msgstr ""
"Определить, могут ли учётные данные субъекта изменить метку переданного "
"vnode на переданную обновлённую метку."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3814
#, no-wrap
msgid "`mpo_check_mount_stat`"
msgstr "`mpo_check_mount_stat`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3820
#, no-wrap
msgid ""
"int mpo_check_mount_stat(struct ucred *cred, struct mount *mp,\n"
"    struct label *mountlabel);\n"
msgstr ""
"int mpo_check_mount_stat(struct ucred *cred, struct mount *mp,\n"
"    struct label *mountlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3835
#, no-wrap
msgid "Object; file system mount"
msgstr "Объект; точка монтирования файловой системы"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3838
#, no-wrap
msgid "`mountlabel`"
msgstr "`mountlabel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3839
#, no-wrap
msgid "Policy label for `mp`"
msgstr "Метка политики для `mp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3846
msgid ""
"Determine whether the subject credential can see the results of a statfs "
"performed on the file system.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatches or EPERM for lack "
"of privilege.  This call may be made in a number of situations, including "
"during invocations of man:statfs[2] and related calls, as well as to "
"determine what file systems to exclude from listings of file systems, such "
"as when man:getfsstat[2] is invoked."
msgstr ""
"Определить, могут ли учётные данные субъекта видеть результаты выполнения "
"statfs для файловой системы. Возвращает 0 при успехе или значение `errno` "
"при ошибке. Рекомендуемые ошибки: EACCES при несоответствии меток или EPERM "
"при отсутствии привилегий. Этот вызов может выполняться в различных "
"ситуациях, включая вызовы man:statfs[2] и связанных функций, а также для "
"определения, какие файловые системы исключать из списка, например, при "
"вызове man:getfsstat[2]."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3848
#, no-wrap
msgid "`mpo_check_proc_debug`"
msgstr "`mpo_check_proc_debug`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3853
#, no-wrap
msgid "int mpo_check_proc_debug(struct ucred *cred, struct proc *proc);\n"
msgstr "int mpo_check_proc_debug(struct ucred *cred, struct proc *proc);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3867
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4968
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4998
#, no-wrap
msgid "`proc`"
msgstr "`proc`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3868
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4969
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4999
#, no-wrap
msgid "Object; process"
msgstr "Объект; процесс"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3875
msgid ""
"Determine whether the subject credential can debug the passed process.  "
"Return 0 for success, or an `errno` value for failure.  Suggested failure: "
"EACCES for label mismatch, EPERM for lack of privilege, or ESRCH to hide "
"visibility of the target.  This call may be made in a number of situations, "
"including use of the man:ptrace[2] and man:ktrace[2] APIs, as well as for "
"some types of procfs operations."
msgstr ""
"Определить, могут ли учётные данные субъекта отлаживать переданный процесс. "
"Возвращает 0 при успехе или значение `errno` при ошибке. Рекомендуемые "
"ошибки: EACCES при несоответствии метки, EPERM при недостатке прав или ESRCH "
"для скрытия видимости цели. Этот вызов может использоваться в различных "
"ситуациях, включая использование API man:ptrace[2] и man:ktrace[2], а также "
"для некоторых операций с procfs."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3877
#, no-wrap
msgid "`mpo_check_vnode_access`"
msgstr "`mpo_check_vnode_access`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3883
#, no-wrap
msgid ""
"int mpo_check_vnode_access(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int flags);\n"
msgstr ""
"int mpo_check_vnode_access(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int flags);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3905
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4820
#, no-wrap
msgid "`flags`"
msgstr "`flags`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3906
#, no-wrap
msgid "man:access[2] flags"
msgstr "флаги man:access[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3913
msgid ""
"Determine how invocations of man:access[2] and related calls by the subject "
"credential should return when performed on the passed vnode using the passed "
"access flags.  This should generally be implemented using the same semantics "
"used in `mpo_check_vnode_open`.  Return 0 for success, or an `errno` value "
"for failure.  Suggested failure: EACCES for label mismatches or EPERM for "
"lack of privilege."
msgstr ""
"Определить, как должны возвращаться вызовы man:access[2] и связанные вызовы "
"для субъекта с указанными учётными данными при выполнении на переданном "
"vnode с использованием переданных флагов доступа. Обычно это должно быть "
"реализовано с использованием той же семантики, что и в `mpo_check_vnode_open`"
". Возвращает 0 при успехе или значение `errno` при ошибке. Рекомендуемые "
"ошибки: EACCES при несоответствии меток или EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3915
#, no-wrap
msgid "`mpo_check_vnode_chdir`"
msgstr "`mpo_check_vnode_chdir`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3921
#, no-wrap
msgid ""
"int mpo_check_vnode_chdir(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"
msgstr ""
"int mpo_check_vnode_chdir(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3936
#, no-wrap
msgid "Object; vnode to man:chdir[2] into"
msgstr "Объект; vnode, в который делается man:chdir[2]"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3940
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4004
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4047
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4554
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4628
#, no-wrap
msgid "Policy label for `dvp`"
msgstr "Метка политики для `dvp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3946
msgid ""
"Determine whether the subject credential can change the process working "
"directory to the passed vnode.  Return 0 for success, or an `errno` value "
"for failure.  Suggested failure: EACCES for label mismatch, or EPERM for "
"lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта изменить рабочий каталог "
"процесса на переданный vnode. Возвращает 0 при успехе или значение `errno` "
"при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM "
"при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3948
#, no-wrap
msgid "`mpo_check_vnode_chroot`"
msgstr "`mpo_check_vnode_chroot`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3954
#, no-wrap
msgid ""
"int mpo_check_vnode_chroot(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"
msgstr ""
"int mpo_check_vnode_chroot(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3969
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4245
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4425
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4469
#, no-wrap
msgid "Directory vnode"
msgstr "vnode каталога"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3973
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4249
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4429
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4473
#, no-wrap
msgid "Policy label associated with `dvp`"
msgstr "Метка политики, связанная с `dvp`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3977
msgid ""
"Determine whether the subject should be allowed to man:chroot[2] into the "
"specified directory (`dvp`)."
msgstr ""
"Определить, следует ли разрешить субъекту выполнять man:chroot[2] в "
"указанный каталог (`dvp`)."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3979
#, no-wrap
msgid "`mpo_check_vnode_create`"
msgstr "`mpo_check_vnode_create`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:3985
#, no-wrap
msgid ""
"int mpo_check_vnode_create(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct componentname *cnp, struct vattr *vap);\n"
msgstr ""
"int mpo_check_vnode_create(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct componentname *cnp, struct vattr *vap);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4008
#, no-wrap
msgid "Component name for `dvp`"
msgstr "Название компонента для `dvp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4011
#, no-wrap
msgid "`vap`"
msgstr "`vap`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4012
#, no-wrap
msgid "vnode attributes for `vap`"
msgstr "атрибуты vnode для `vap`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4019
msgid ""
"Determine whether the subject credential can create a vnode with the passed "
"parent directory, passed name information, and passed attribute "
"information.  Return 0 for success, or an `errno` value for failure.  "
"Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege.  This call may be made in a number of situations, including as a "
"result of calls to man:open[2] with O_CREAT, man:mkfifo[2], and others."
msgstr ""
"Определить, могут ли учётные данные субъекта создать vnode с указанным "
"родительским каталогом, информацией о имени и атрибутами. Возвращает 0 при "
"успехе или значение `errno` при ошибке. Рекомендуемые ошибки: EACCES при "
"несоответствии метки или EPERM при отсутствии привилегий. Этот вызов может "
"выполняться в различных ситуациях, включая вызовы man:open[2] с O_CREAT, "
"man:mkfifo[2] и другие."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4021
#, no-wrap
msgid "`mpo_check_vnode_delete`"
msgstr "`mpo_check_vnode_delete`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4028
#, no-wrap
msgid ""
"int mpo_check_vnode_delete(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, void *label,\n"
"    struct componentname *cnp);\n"
msgstr ""
"int mpo_check_vnode_delete(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, void *label,\n"
"    struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4051
#, no-wrap
msgid "Object; vnode to delete"
msgstr "Объект; vnode для удаления"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4067
msgid ""
"Determine whether the subject credential can delete a vnode from the passed "
"parent directory and passed name information.  Return 0 for success, or an "
"`errno` value for failure.  Suggested failure: EACCES for label mismatch, or "
"EPERM for lack of privilege.  This call may be made in a number of "
"situations, including as a result of calls to man:unlink[2] and "
"man:rmdir[2].  Policies implementing this entry point should also implement "
"`mpo_check_rename_to` to authorize deletion of objects as a result of being "
"the target of a rename."
msgstr ""
"Определить, может ли субъект с данными учётными данными удалить vnode из "
"переданного родительского каталога и переданной информации о имени. "
"Возвращает 0 при успехе или значение `errno` при ошибке. Рекомендуемые "
"ошибки: EACCES при несоответствии метки или EPERM при отсутствии привилегий. "
"Этот вызов может быть выполнен в различных ситуациях, включая вызовы "
"man:unlink[2] и man:rmdir[2]. Политики, реализующие эту точку входа, также "
"должны реализовывать `mpo_check_rename_to` для авторизации удаления объектов "
"в результате их переименования."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4069
#, no-wrap
msgid "`mpo_check_vnode_deleteacl`"
msgstr "`mpo_check_vnode_deleteacl`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4075
#, no-wrap
msgid ""
"int mpo_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type);\n"
msgstr ""
"int mpo_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4097
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4168
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4731
#, no-wrap
msgid "`type`"
msgstr "`type`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4098
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4169
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4732
#, no-wrap
msgid "ACL type"
msgstr "Тип ACL"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4104
msgid ""
"Determine whether the subject credential can delete the ACL of passed type "
"from the passed vnode.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта удалить ACL указанного типа из "
"переданного vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4106
#, no-wrap
msgid "`mpo_check_vnode_exec`"
msgstr "`mpo_check_vnode_exec`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4112
#, no-wrap
msgid ""
"int mpo_check_vnode_exec(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"
msgstr ""
"int mpo_check_vnode_exec(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4127
#, no-wrap
msgid "Object; vnode to execute"
msgstr "Объект; vnode для выполнения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4138
msgid ""
"Determine whether the subject credential can execute the passed vnode.  "
"Determination of execute privilege is made separately from decisions about "
"any transitioning event.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнить переданный vnode. "
"Проверка права на выполнение осуществляется отдельно от решений о любом "
"переходном событии. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии прав."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4140
#, no-wrap
msgid "`mpo_check_vnode_getacl`"
msgstr "`mpo_check_vnode_getacl`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4146
#, no-wrap
msgid ""
"int mpo_check_vnode_getacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type);\n"
msgstr ""
"int mpo_check_vnode_getacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4175
msgid ""
"Determine whether the subject credential can retrieve the ACL of passed type "
"from the passed vnode.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, может ли учётное данное субъекта получить ACL указанного типа из "
"переданного vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4177
#, no-wrap
msgid "`mpo_check_vnode_getextattr`"
msgstr "`mpo_check_vnode_getextattr`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4183
#, no-wrap
msgid ""
"int mpo_check_vnode_getextattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int attrnamespace, const char *name, struct uio *uio);\n"
msgstr ""
"int mpo_check_vnode_getextattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int attrnamespace, const char *name, struct uio "
"*uio);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4205
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4772
#, no-wrap
msgid "`attrnamespace`"
msgstr "`attrnamespace`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4206
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4773
#, no-wrap
msgid "Extended attribute namespace"
msgstr "Пространство имён расширенных атрибутов"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4210
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4777
#, no-wrap
msgid "Extended attribute name"
msgstr "Имя расширенного атрибута"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4213
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4780
#, no-wrap
msgid "`uio`"
msgstr "`uio`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4214
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4781
#, no-wrap
msgid "I/O structure pointer; see man:uio[9]"
msgstr "Указатель структуры ввода-вывода; см. man:uio[9]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4221
msgid ""
"Determine whether the subject credential can retrieve the extended attribute "
"with the passed namespace and name from the passed vnode.  Policies "
"implementing labeling using extended attributes may be interested in special "
"handling of operations on those extended attributes.  Return 0 for success, "
"or an `errno` value for failure.  Suggested failure: EACCES for label "
"mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, может ли субъект с указанными учётными данными получить "
"расширенный атрибут с заданным пространством имён и именем из указанного "
"vnode. Политики, реализующие маркировку с использованием расширенных "
"атрибутов, могут требовать особой обработки операций с этими атрибутами. "
"Возвращает 0 при успехе или значение `errno` при ошибке. Рекомендуемые "
"ошибки: EACCES при несоответствии метки или EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4223
#, no-wrap
msgid "`mpo_check_vnode_link`"
msgstr "`mpo_check_vnode_link`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4230
#, no-wrap
msgid ""
"int mpo_check_vnode_link(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label,\n"
"    struct componentname *cnp);\n"
msgstr ""
"int mpo_check_vnode_link(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label,\n"
"    struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4253
#, no-wrap
msgid "Link destination vnode"
msgstr "vnode целевого линка"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4261
#, no-wrap
msgid "Component name for the link being created"
msgstr "Имя компонента для создаваемой ссылки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4265
msgid ""
"Determine whether the subject should be allowed to create a link to the "
"vnode `vp` with the name specified by `cnp`."
msgstr ""
"Определить, следует ли разрешить субъекту создавать ссылку на vnode `vp` с "
"именем, указанным в `cnp`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4267
#, no-wrap
msgid "`mpo_check_vnode_mmap`"
msgstr "`mpo_check_vnode_mmap`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4273
#, no-wrap
msgid ""
"int mpo_check_vnode_mmap(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int prot);\n"
msgstr ""
"int mpo_check_vnode_mmap(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int prot);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4288
#, no-wrap
msgid "Vnode to map"
msgstr "vnode для mmap"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4295
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4330
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4361
#, no-wrap
msgid "`prot`"
msgstr "`prot`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4296
#, no-wrap
msgid "Mmap protections (see man:mmap[2])"
msgstr "Защита mmap (см. man:mmap[2])"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4300
msgid ""
"Determine whether the subject should be allowed to map the vnode `vp` with "
"the protections specified in `prot`."
msgstr ""
"Определить, следует ли разрешить субъекту отображать vnode `vp` с указанными "
"в `prot` правами доступа."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4302
#, no-wrap
msgid "`mpo_check_vnode_mmap_downgrade`"
msgstr "`mpo_check_vnode_mmap_downgrade`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4308
#, no-wrap
msgid ""
"void mpo_check_vnode_mmap_downgrade(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int *prot);\n"
msgstr ""
"void mpo_check_vnode_mmap_downgrade(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int *prot);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4319
#, no-wrap
msgid "See crossref:mac[mac-mpo-check-vnode-mmap, `mpo_check_vnode_mmap`]."
msgstr "См. crossref:mac[mac-mpo-check-vnode-mmap, `mpo_check_vnode_mmap`]."

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4331
#, no-wrap
msgid "Mmap protections to be downgraded"
msgstr "Защита mmap для понижения уровня"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4335
msgid "Downgrade the mmap protections based on the subject and object labels."
msgstr "Понизить уровень защиты mmap на основе меток субъекта и объекта."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4337
#, no-wrap
msgid "`mpo_check_vnode_mprotect`"
msgstr "`mpo_check_vnode_mprotect`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4343
#, no-wrap
msgid ""
"int mpo_check_vnode_mprotect(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int prot);\n"
msgstr ""
"int mpo_check_vnode_mprotect(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int prot);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4358
#, no-wrap
msgid "Mapped vnode"
msgstr "Отображенный vnode"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4362
#, no-wrap
msgid "Memory protections"
msgstr "Защита памяти"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4366
msgid ""
"Determine whether the subject should be allowed to set the specified memory "
"protections on memory mapped from the vnode `vp`."
msgstr ""
"Определить, следует ли разрешить субъекту устанавливать указанные защиты "
"памяти для памяти, отображенной из vnode `vp`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4368
#, no-wrap
msgid "`mpo_check_vnode_poll`"
msgstr "`mpo_check_vnode_poll`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4374
#, no-wrap
msgid ""
"int mpo_check_vnode_poll(struct ucred *active_cred, struct ucred *file_cred,\n"
"    struct vnode *vp, struct label *label);\n"
msgstr ""
"int mpo_check_vnode_poll(struct ucred *active_cred, struct ucred *file_cred,"
"\n"
"    struct vnode *vp, struct label *label);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4384
#, no-wrap
msgid "`active_cred`"
msgstr "`active_cred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4388
#, no-wrap
msgid "`file_cred`"
msgstr "`file_cred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4389
#, no-wrap
msgid "Credential associated with the struct file"
msgstr "Учётные данные, связанные со структурой file"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4393
#, no-wrap
msgid "Polled vnode"
msgstr "vnode, на котором вызывается poll"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4401
msgid "Determine whether the subject should be allowed to poll the vnode `vp`."
msgstr "Определить, следует ли разрешить субъекту вызывать poll на vnode `vp`."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4403
#, no-wrap
msgid "`mpo_check_vnode_rename_from`"
msgstr "`mpo_check_vnode_rename_from`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4410
#, no-wrap
msgid ""
"int mpo_vnode_rename_from(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label,\n"
"    struct componentname *cnp);\n"
msgstr ""
"int mpo_vnode_rename_from(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label,\n"
"    struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4433
#, no-wrap
msgid "Vnode to be renamed"
msgstr "vnode для переименования"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4445
msgid ""
"Determine whether the subject should be allowed to rename the vnode `vp` to "
"something else."
msgstr ""
"Определить, следует ли разрешить субъекту переименовать vnode `vp` во что-то "
"другое."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4447
#, no-wrap
msgid "`mpo_check_vnode_rename_to`"
msgstr "`mpo_check_vnode_rename_to`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4454
#, no-wrap
msgid ""
"int mpo_check_vnode_rename_to(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label, int samedir,\n"
"    struct componentname *cnp);\n"
msgstr ""
"int mpo_check_vnode_rename_to(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct vnode *vp, struct label *label, int samedir,"
"\n"
"    struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4477
#, no-wrap
msgid "Overwritten vnode"
msgstr "vnode, который будет перезаписан"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4484
#, no-wrap
msgid "`samedir`"
msgstr "`samedir`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4485
#, no-wrap
msgid "Boolean; `1` if the source and destination directories are the same"
msgstr "Логическое значение; `1`, если исходный и целевой каталоги совпадают"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4489
#, no-wrap
msgid "Destination component name"
msgstr "Имя компонента назначения"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4494
msgid ""
"Determine whether the subject should be allowed to rename to the vnode `vp`, "
"into the directory `dvp`, or to the name represented by `cnp`.  If there is "
"no existing file to overwrite, `vp` and `label` will be NULL."
msgstr ""
"Определить, следует ли разрешить субъекту переименование vnode `vp` в "
"каталог `dvp` или в имя, представленное `cnp`. Если не существует файла для "
"перезаписи, `vp` и `label` будут NULL."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4496
#, no-wrap
msgid "`mpo_check_socket_listen`"
msgstr "`mpo_check_socket_listen`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4502
#, no-wrap
msgid ""
"int mpo_check_socket_listen(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel);\n"
msgstr ""
"int mpo_check_socket_listen(struct ucred *cred, struct socket *socket,\n"
"    struct label *socketlabel);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4527
msgid ""
"Determine whether the subject credential can listen on the passed socket.  "
"Return 0 for success, or an `errno` value for failure.  Suggested failure: "
"EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта прослушивать переданный сокет ("
"вызывать listen). Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4529
#, no-wrap
msgid "`mpo_check_vnode_lookup`"
msgstr "`mpo_check_vnode_lookup`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4535
#, no-wrap
msgid ""
"int mpo_check_vnode_lookup(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct componentname *cnp);\n"
msgstr ""
"int mpo_check_vnode_lookup(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel, struct componentname *cnp);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4558
#, no-wrap
msgid "Component name being looked up"
msgstr "Имя компонента, который ищется"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4564
msgid ""
"Determine whether the subject credential can perform a lookup in the passed "
"directory vnode for the passed name.  Return 0 for success, or an `errno` "
"value for failure.  Suggested failure: EACCES for label mismatch, or EPERM "
"for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнить поиск указанного "
"имени в каталог с переданном vnode. Возвращает 0 при успехе или значение "
"`errno` при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки "
"или EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4566
#, no-wrap
msgid "`mpo_check_vnode_open`"
msgstr "`mpo_check_vnode_open`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4572
#, no-wrap
msgid ""
"int mpo_check_vnode_open(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int acc_mode);\n"
msgstr ""
"int mpo_check_vnode_open(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int acc_mode);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4594
#, no-wrap
msgid "`acc_mode`"
msgstr "`acc_mode`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4595
#, no-wrap
msgid "man:open[2] access mode"
msgstr "режим доступа от man:open[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4601
msgid ""
"Determine whether the subject credential can perform an open operation on "
"the passed vnode with the passed access mode.  Return 0 for success, or an "
"errno value for failure.  Suggested failure: EACCES for label mismatch, or "
"EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнить операцию открытия "
"переданного vnode с указанным режимом доступа. Возвращает 0 в случае успеха "
"или значение errno при ошибке. Рекомендуемые ошибки: EACCES при "
"несоответствии метки или EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4603
#, no-wrap
msgid "`mpo_check_vnode_readdir`"
msgstr "`mpo_check_vnode_readdir`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4609
#, no-wrap
msgid ""
"int mpo_check_vnode_readdir(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"
msgstr ""
"int mpo_check_vnode_readdir(struct ucred *cred, struct vnode *dvp,\n"
"    struct label *dlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4624
#, no-wrap
msgid "Object; directory vnode"
msgstr "Объект; vnode каталога"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4634
msgid ""
"Determine whether the subject credential can perform a `readdir` operation "
"on the passed directory vnode.  Return 0 for success, or an `errno` value "
"for failure.  Suggested failure: EACCES for label mismatch, or EPERM for "
"lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнить операцию `readdir` "
"для переданного vnode каталога. Возвращает 0 при успехе или значение `errno` "
"при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM "
"при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4636
#, no-wrap
msgid "`mpo_check_vnode_readlink`"
msgstr "`mpo_check_vnode_readlink`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4642
#, no-wrap
msgid ""
"int mpo_check_vnode_readlink(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"
msgstr ""
"int mpo_check_vnode_readlink(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4668
msgid ""
"Determine whether the subject credential can perform a `readlink` operation "
"on the passed symlink vnode.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege.  This call may be made in a number of situations, including an "
"explicit `readlink` call by the user process, or as a result of an implicit "
"`readlink` during a name lookup by the process."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнить операцию `readlink` "
"для переданного символьного vnode. Возвращает 0 в случае успеха или значение "
"`errno` в случае ошибки. Рекомендуемые ошибки: EACCES при несоответствии "
"метки или EPERM при отсутствии привилегий. Этот вызов может быть выполнен в "
"различных ситуациях, включая явный вызов `readlink` пользовательским "
"процессом или неявный `readlink` во время поиска имени процессом."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4670
#, no-wrap
msgid "`mpo_check_vnode_revoke`"
msgstr "`mpo_check_vnode_revoke`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4676
#, no-wrap
msgid ""
"int mpo_check_vnode_revoke(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"
msgstr ""
"int mpo_check_vnode_revoke(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4701
msgid ""
"Determine whether the subject credential can revoke access to the passed "
"vnode.  Return 0 for success, or an `errno` value for failure.  Suggested "
"failure: EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта отозвать доступ к переданному "
"vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4703
#, no-wrap
msgid "`mpo_check_vnode_setacl`"
msgstr "`mpo_check_vnode_setacl`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4709
#, no-wrap
msgid ""
"int mpo_check_vnode_setacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type, struct acl *acl);\n"
msgstr ""
"int mpo_check_vnode_setacl(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, acl_type_t type, struct acl *acl);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4735
#, no-wrap
msgid "`acl`"
msgstr "`acl`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4736
#, no-wrap
msgid "ACL"
msgstr "ACL"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4742
msgid ""
"Determine whether the subject credential can set the passed ACL of passed "
"type on the passed vnode.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить переданный ACL "
"указанного типа для переданного vnode. Возвращает 0 при успехе или значение "
"`errno` при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки "
"или EPERM при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4744
#, no-wrap
msgid "`mpo_check_vnode_setextattr`"
msgstr "`mpo_check_vnode_setextattr`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4750
#, no-wrap
msgid ""
"int mpo_check_vnode_setextattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int attrnamespace, const char *name, struct uio *uio);\n"
msgstr ""
"int mpo_check_vnode_setextattr(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, int attrnamespace, const char *name, struct uio "
"*uio);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4790
msgid ""
"Determine whether the subject credential can set the extended attribute of "
"passed name and passed namespace on the passed vnode.  Policies implementing "
"security labels backed into extended attributes may want to provide "
"additional protections for those attributes.  Additionally, policies should "
"avoid making decisions based on the data referenced from `uio`, as there is "
"a potential race condition between this check and the actual operation.  The "
"`uio` may also be `NULL` if a delete operation is being performed.  Return 0 "
"for success, or an `errno` value for failure.  Suggested failure: EACCES for "
"label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить расширенный атрибут "
"с переданным именем и пространством имён на переданном vnode. Политики, "
"реализующие метки безопасности, основанные на расширенных атрибутах, могут "
"предусматривать дополнительные защиты для этих атрибутов. Кроме того, "
"политикам следует избегать принятия решений на основе данных, на которые "
"ссылается `uio`, так как существует потенциальное состояние гонки между этой "
"проверкой и фактической операцией. `uio` также может быть `NULL`, если "
"выполняется операция удаления. Возвращает 0 при успехе или значение `errno` "
"при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM "
"при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4792
#, no-wrap
msgid "`mpo_check_vnode_setflags`"
msgstr "`mpo_check_vnode_setflags`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4798
#, no-wrap
msgid ""
"int mpo_check_vnode_setflags(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, u_long flags);\n"
msgstr ""
"int mpo_check_vnode_setflags(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, u_long flags);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4821
#, no-wrap
msgid "File flags; see man:chflags[2]"
msgstr "Флаги файла; см. man:chflags[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4827
msgid ""
"Determine whether the subject credential can set the passed flags on the "
"passed vnode.  Return 0 for success, or an `errno` value for failure.  "
"Suggested failure: EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить переданные флаги на "
"переданном vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4829
#, no-wrap
msgid "`mpo_check_vnode_setmode`"
msgstr "`mpo_check_vnode_setmode`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4835
#, no-wrap
msgid ""
"int mpo_check_vnode_setmode(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, mode_t mode);\n"
msgstr ""
"int mpo_check_vnode_setmode(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, mode_t mode);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4857
#, no-wrap
msgid "`mode`"
msgstr "`mode`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4858
#, no-wrap
msgid "File mode; see man:chmod[2]"
msgstr "Режим файла; см. man:chmod[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4864
msgid ""
"Determine whether the subject credential can set the passed mode on the "
"passed vnode.  Return 0 for success, or an `errno` value for failure.  "
"Suggested failure: EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить переданный режим для "
"переданного vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"недостатке привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4866
#, no-wrap
msgid "`mpo_check_vnode_setowner`"
msgstr "`mpo_check_vnode_setowner`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4872
#, no-wrap
msgid ""
"int mpo_check_vnode_setowner(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, uid_t uid, gid_t gid);\n"
msgstr ""
"int mpo_check_vnode_setowner(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, uid_t uid, gid_t gid);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4894
#, no-wrap
msgid "`uid`"
msgstr "`uid`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4895
#, no-wrap
msgid "User ID"
msgstr "User ID"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4898
#, no-wrap
msgid "`gid`"
msgstr "`gid`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4899
#, no-wrap
msgid "Group ID"
msgstr "Идентификатор группы"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4906
msgid ""
"Determine whether the subject credential can set the passed uid and passed "
"gid as file uid and file gid on the passed vnode.  The IDs may be set to "
"(`-1`) to request no update.  Return 0 for success, or an `errno` value for "
"failure.  Suggested failure: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить переданный uid и "
"переданный gid в качестве uid файла и gid файла для переданного vnode. "
"Идентификаторы могут быть установлены в (`-1`) для запроса отсутствия "
"обновления. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4908
#, no-wrap
msgid "`mpo_check_vnode_setutimes`"
msgstr "`mpo_check_vnode_setutimes`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4914
#, no-wrap
msgid ""
"int mpo_check_vnode_setutimes(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, struct timespec atime, struct timespec mtime);\n"
msgstr ""
"int mpo_check_vnode_setutimes(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label, struct timespec atime, struct timespec mtime);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4929
#, no-wrap
msgid "Object; vp"
msgstr "Объект; vp"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4936
#, no-wrap
msgid "`atime`"
msgstr "`atime`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4937
#, no-wrap
msgid "Access time; see man:utimes[2]"
msgstr "Время доступа; см. man:utimes[2]"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4940
#, no-wrap
msgid "`mtime`"
msgstr "`mtime`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4941
#, no-wrap
msgid "Modification time; see man:utimes[2]"
msgstr "Время изменения; см. man:utimes[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4947
msgid ""
"Determine whether the subject credential can set the passed access "
"timestamps on the passed vnode.  Return 0 for success, or an `errno` value "
"for failure.  Suggested failure: EACCES for label mismatch, or EPERM for "
"lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта установить переданные времена "
"доступа на переданном vnode. Возвращает 0 при успехе или значение `errno` "
"при ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM "
"при отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4949
#, no-wrap
msgid "`mpo_check_proc_sched`"
msgstr "`mpo_check_proc_sched`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4954
#, no-wrap
msgid "int mpo_check_proc_sched(struct ucred *ucred, struct proc *proc);\n"
msgstr "int mpo_check_proc_sched(struct ucred *ucred, struct proc *proc);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4975
msgid ""
"Determine whether the subject credential can change the scheduling "
"parameters of the passed process.  Return 0 for success, or an `errno` value "
"for failure.  Suggested failure: EACCES for label mismatch, EPERM for lack "
"of privilege, or ESRCH to limit visibility."
msgstr ""
"Определить, могут ли учётные данные субъекта изменить параметры планирования "
"переданного процесса. Возвращает 0 при успехе или значение `errno` при "
"ошибке. Рекомендуемые ошибки: EACCES при несоответствии метки, EPERM при "
"отсутствии привилегий или ESRCH для ограничения видимости."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4977
msgid "See man:setpriority[2] for more information."
msgstr "См. man:setpriority[2] для получения дополнительной информации."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4979
#, no-wrap
msgid "`mpo_check_proc_signal`"
msgstr "`mpo_check_proc_signal`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:4984
#, no-wrap
msgid "int mpo_check_proc_signal(struct ucred *cred, struct proc *proc, int signal);\n"
msgstr ""
"int mpo_check_proc_signal(struct ucred *cred, struct proc *proc, int signal);"
"\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5002
#, no-wrap
msgid "`signal`"
msgstr "`signal`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5003
#, no-wrap
msgid "Signal; see man:kill[2]"
msgstr "Сигнал; см. man:kill[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5009
msgid ""
"Determine whether the subject credential can deliver the passed signal to "
"the passed process.  Return 0 for success, or an `errno` value for failure.  "
"Suggested failure: EACCES for label mismatch, EPERM for lack of privilege, "
"or ESRCH to limit visibility."
msgstr ""
"Определить, могут ли учётные данные субъекта доставить указанный сигнал "
"указанному процессу. Возвращает 0 при успехе или значение `errno` при "
"ошибке. Рекомендуемые коды ошибок: EACCES при несоответствии метки, EPERM "
"при недостатке прав или ESRCH для ограничения видимости."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5011
#, no-wrap
msgid "`mpo_check_vnode_stat`"
msgstr "`mpo_check_vnode_stat`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5017
#, no-wrap
msgid ""
"int mpo_check_vnode_stat(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"
msgstr ""
"int mpo_check_vnode_stat(struct ucred *cred, struct vnode *vp,\n"
"    struct label *label);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5042
msgid ""
"Determine whether the subject credential can `stat` the passed vnode.  "
"Return 0 for success, or an `errno` value for failure.  Suggested failure: "
"EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, могут ли учётные данные субъекта выполнять `stat` для "
"переданного vnode. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5044
msgid "See man:stat[2] for more information."
msgstr "См. man:stat[2] для получения дополнительной информации."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5046
#, no-wrap
msgid "`mpo_check_ifnet_transmit`"
msgstr "`mpo_check_ifnet_transmit`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5052
#, no-wrap
msgid ""
"int mpo_check_ifnet_transmit(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel);\n"
msgstr ""
"int mpo_check_ifnet_transmit(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5075
#, no-wrap
msgid "Object; mbuf to be sent"
msgstr "Объект; mbuf для отправки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5085
msgid ""
"Determine whether the network interface can transmit the passed mbuf.  "
"Return 0 for success, or an `errno` value for failure.  Suggested failure: "
"EACCES for label mismatch, or EPERM for lack of privilege."
msgstr ""
"Определить, может ли сетевой интерфейс передать mbuf, переданный в качестве "
"параметра. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5087
#, no-wrap
msgid "`mpo_check_socket_deliver`"
msgstr "`mpo_check_socket_deliver`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5093
#, no-wrap
msgid ""
"int mpo_check_socket_deliver(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel);\n"
msgstr ""
"int mpo_check_socket_deliver(struct ucred *cred, struct ifnet *ifnet,\n"
"    struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5116
#, no-wrap
msgid "Object; mbuf to be delivered"
msgstr "Объект; mbuf для доставки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5126
msgid ""
"Determine whether the socket may receive the datagram stored in the passed "
"mbuf header.  Return 0 for success, or an `errno` value for failure.  "
"Suggested failures: EACCES for label mismatch, or EPERM for lack of "
"privilege."
msgstr ""
"Определить, может ли сокет принять датаграмму, хранящуюся в переданном "
"заголовке mbuf. Возвращает 0 при успехе или значение `errno` при ошибке. "
"Рекомендуемые ошибки: EACCES при несоответствии метки или EPERM при "
"отсутствии привилегий."

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5134
#, no-wrap
msgid ""
"int mpo_check_socket_visible(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"
msgstr ""
"int mpo_check_socket_visible(struct ucred *cred, struct socket *so,\n"
"    struct label *socketlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5153
#, no-wrap
msgid "Policy label for `so`"
msgstr "Метка политики для `so`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5159
msgid ""
"Determine whether the subject credential cred can \"see\" the passed socket "
"(`socket`) using system monitoring functions, such as those employed by "
"man:netstat[8] and man:sockstat[1].  Return 0 for success, or an `errno` "
"value for failure.  Suggested failure: EACCES for label mismatches, EPERM "
"for lack of privilege, or ESRCH to hide visibility."
msgstr ""
"Определить, могут ли учётные данные субъекта cred \"видеть\" переданный "
"сокет (`socket`), используя функции системного мониторинга, такие как те, "
"что применяются в man:netstat[8] и man:sockstat[1]. Возвращает 0 при успехе "
"или значение `errno` при ошибке. Рекомендуемые ошибки: EACCES при "
"несоответствии меток, EPERM при отсутствии привилегий или ESRCH для скрытия "
"видимости."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5161
#, no-wrap
msgid "`mpo_check_system_acct`"
msgstr "`mpo_check_system_acct`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5167
#, no-wrap
msgid ""
"int mpo_check_system_acct(struct ucred *ucred, struct vnode *vp,\n"
"    struct label *vlabel);\n"
msgstr ""
"int mpo_check_system_acct(struct ucred *ucred, struct vnode *vp,\n"
"    struct label *vlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5177
#, no-wrap
msgid "`ucred`"
msgstr "`ucred`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5182
#, no-wrap
msgid "Accounting file; man:acct[5]"
msgstr "Файл учёта; man:acct[5]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5190
msgid ""
"Determine whether the subject should be allowed to enable accounting, based "
"on its label and the label of the accounting log file."
msgstr ""
"Определить, следует ли разрешить субъекту включение учёта, основываясь на "
"его метке и метке файла журнала учёта."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5192
#, no-wrap
msgid "`mpo_check_system_nfsd`"
msgstr "`mpo_check_system_nfsd`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5197
#, no-wrap
msgid "int mpo_check_system_nfsd(struct ucred *cred);\n"
msgstr "int mpo_check_system_nfsd(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5212
msgid "Determine whether the subject should be allowed to call man:nfssvc[2]."
msgstr "Определить, следует ли разрешить субъекту вызывать man:nfssvc[2]."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5214
#, no-wrap
msgid "`mpo_check_system_reboot`"
msgstr "`mpo_check_system_reboot`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5219
#, no-wrap
msgid "int mpo_check_system_reboot(struct ucred *cred, int howto);\n"
msgstr "int mpo_check_system_reboot(struct ucred *cred, int howto);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5233
#, no-wrap
msgid "`howto`"
msgstr "`howto`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5234
#, no-wrap
msgid "`howto` parameter from man:reboot[2]"
msgstr "Параметр `howto` из man:reboot[2]"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5238
msgid ""
"Determine whether the subject should be allowed to reboot the system in the "
"specified manner."
msgstr ""
"Определить, следует ли разрешить субъекту перезагружать систему указанным "
"способом."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5240
#, no-wrap
msgid "`mpo_check_system_settime`"
msgstr "`mpo_check_system_settime`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5245
#, no-wrap
msgid "int mpo_check_system_settime(struct ucred *cred);\n"
msgstr "int mpo_check_system_settime(struct ucred *cred);\n"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5260
msgid "Determine whether the user should be allowed to set the system clock."
msgstr "Определить, разрешено ли пользователю устанавливать системные часы."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5262
#, no-wrap
msgid "`mpo_check_system_swapon`"
msgstr "`mpo_check_system_swapon`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5268
#, no-wrap
msgid ""
"int mpo_check_system_swapon(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel);\n"
msgstr ""
"int mpo_check_system_swapon(struct ucred *cred, struct vnode *vp,\n"
"    struct label *vlabel);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5283
#, no-wrap
msgid "Swap device"
msgstr "Устройство подкачки"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5291
msgid ""
"Determine whether the subject should be allowed to add `vp` as a swap device."
msgstr ""
"Определить, следует ли разрешить субъекту добавлять `vp` как устройство "
"подкачки."

#. type: Title ====
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5293
#, no-wrap
msgid "`mpo_check_system_sysctl`"
msgstr "`mpo_check_system_sysctl`"

#. type: delimited block - 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5299
#, no-wrap
msgid ""
"int mpo_check_system_sysctl(struct ucred *cred, int *name, u_int *namelen,\n"
"    void *old, size_t *oldlenp, int inkernel, void *new, size_t newlen);\n"
msgstr ""
"int mpo_check_system_sysctl(struct ucred *cred, int *name, u_int *namelen,\n"
"    void *old, size_t *oldlenp, int inkernel, void *new, size_t newlen);\n"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5314
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5334
#, no-wrap
msgid "See man:sysctl[3]"
msgstr "См. man:sysctl[3]"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5325
#, no-wrap
msgid "`oldlenp`"
msgstr "`oldlenp`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5329
#, no-wrap
msgid "`inkernel`"
msgstr "`inkernel`"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5330
#, no-wrap
msgid "Boolean; `1` if called from kernel"
msgstr "Логический; `1`, если вызвано из ядра"

#. type: Table
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5337
#, no-wrap
msgid "`newlen`"
msgstr "`newlen`"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5342
msgid ""
"Determine whether the subject should be allowed to make the specified "
"man:sysctl[3] transaction."
msgstr ""
"Определить, следует ли разрешить субъекту выполнять указанную транзакцию "
"man:sysctl[3]."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5344
#, no-wrap
msgid "Label Management Calls"
msgstr "Вызовы при управления метками"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5350
msgid ""
"Relabel events occur when a user process has requested that the label on an "
"object be modified.  A two-phase update occurs: first, an access control "
"check will be performed to determine if the update is both valid and "
"permitted, and then the update itself is performed via a separate entry "
"point.  Relabel entry points typically accept the object, object label "
"reference, and an update label submitted by the process.  Memory allocation "
"during relabel is discouraged, as relabel calls are not permitted to fail "
"(failure should be reported earlier in the relabel check)."
msgstr ""
"События изменения метки происходят, когда пользовательский процесс "
"запрашивает изменение метки на объекте. Происходит двухэтапное обновление: "
"сначала выполняется проверка контроля доступа, чтобы определить, является ли "
"обновление допустимым и разрешённым, а затем само обновление выполняется "
"через отдельную точку входа. Точки входа для изменения метки обычно "
"принимают объект, ссылку на метку объекта и новую метку, предоставленную "
"процессом. Выделение памяти во время изменения метки не рекомендуется, так "
"как вызовы изменения метки не могут завершиться неудачей (ошибка должна быть "
"обнаружена ранее на этапе проверки изменения метки)."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5352
#, no-wrap
msgid "Userland Architecture"
msgstr "Пользовательская архитектура"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5356
msgid ""
"The TrustedBSD MAC Framework includes a number of policy-agnostic elements, "
"including MAC library interfaces for abstractly managing labels, "
"modifications to the system credential management and login libraries to "
"support the assignment of MAC labels to users, and a set of tools to monitor "
"and modify labels on processes, files, and network interfaces.  More details "
"on the user architecture will be added to this section in the near future."
msgstr ""
"В фреймворк TrustedBSD MAC входит ряд элементов, не зависящих от политик, "
"включая интерфейсы MAC-библиотеки для абстрактного управления метками, "
"изменения в управлении системными учётными данными и библиотеках входа в "
"систему для поддержки назначения MAC-меток пользователям, а также набор "
"инструментов для мониторинга и изменения меток процессов, файлов и сетевых "
"интерфейсов. Более подробная информация о пользовательской архитектуре будет "
"добавлена в этот раздел в ближайшее время."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5358
#, no-wrap
msgid "APIs for Policy-Agnostic Label Management"
msgstr "API для управления метками, не зависящими от политики"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5365
msgid ""
"The TrustedBSD MAC Framework provides a number of library and system calls "
"permitting applications to manage MAC labels on objects using a policy-"
"agnostic interface.  This permits applications to manipulate labels for a "
"variety of policies without being written to support specific policies.  "
"These interfaces are used by general-purpose tools such as man:ifconfig[8], "
"man:ls[1] and man:ps[1] to view labels on network interfaces, files, and "
"processes.  The APIs also support MAC management tools including "
"man:getfmac[8], man:getpmac[8], man:setfmac[8], man:setfsmac[8], and "
"man:setpmac[8].  The MAC APIs are documented in man:mac[3]."
msgstr ""
"Фреймворк TrustedBSD MAC предоставляет ряд библиотечных и системных вызовов, "
"позволяющих приложениям управлять метками MAC на объектах с использованием "
"политико-независимого интерфейса. Это позволяет приложениям манипулировать "
"метками для различных политик без необходимости поддержки конкретных "
"политик. Эти интерфейсы используются универсальными инструментами, такими "
"как man:ifconfig[8], man:ls[1] и man:ps[1], для просмотра меток на сетевых "
"интерфейсах, файлах и процессах. API также поддерживают инструменты "
"управления MAC, включая man:getfmac[8], man:getpmac[8], man:setfmac[8], "
"man:setfsmac[8] и man:setpmac[8]. API MAC документированы в man:mac[3]."

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5373
msgid ""
"Applications handle MAC labels in two forms: an internalized form used to "
"return and set labels on processes and objects (`mac_t`), and externalized "
"form based on C strings appropriate for storage in configuration files, "
"display to the user, or input from the user.  Each MAC label contains a "
"number of elements, each consisting of a name and value pair.  Policy "
"modules in the kernel bind to specific names and interpret the values in "
"policy-specific ways.  In the externalized string form, labels are "
"represented by a comma-delimited list of name and value pairs separated by "
"the `/` character.  Labels may be directly converted to and from text using "
"provided APIs; when retrieving labels from the kernel, internalized label "
"storage must first be prepared for the desired label element set.  "
"Typically, this is done in one of two ways: using man:mac_prepare[3] and an "
"arbitrary list of desired label elements, or one of the variants of the call "
"that loads a default element set from the man:mac.conf[5] configuration "
"file.  Per-object defaults permit application writers to usefully display "
"labels associated with objects without being aware of the policies present "
"in the system."
msgstr ""
"Приложения обрабатывают метки MAC в двух формах: внутренней форме, "
"используемой для возврата и установки меток для процессов и объектов "
"(`mac_t`), и внешней форме, основанной на строках C, подходящих для хранения "
"в конфигурационных файлах, отображения пользователю или ввода от "
"пользователя. Каждая метка MAC содержит ряд элементов, каждый из которых "
"состоит из пары имя-значение. Модули политик в ядре привязываются к "
"определённым именам и интерпретируют значения специфичным для политики "
"образом. Во внешней строковой форме метки представляются списком пар имя-"
"значение, разделённых запятыми и символом `/`. Метки могут быть напрямую "
"преобразованы в текст и обратно с использованием предоставленных API; при "
"извлечении меток из ядра внутреннее хранилище меток должно быть сначала "
"подготовлено для желаемого набора элементов метки. Обычно это делается одним "
"из двух способов: с использованием man:mac_prepare[3] и произвольного списка "
"желаемых элементов метки, или одной из вариаций вызова, который загружает "
"набор элементов по умолчанию из конфигурационного файла man:mac.conf[5]. "
"Значения по умолчанию для каждого объекта позволяют разработчикам приложений "
"удобно отображать метки, связанные с объектами, без необходимости знать о "
"присутствующих в системе политиках."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5378
msgid ""
"Currently, direct manipulation of label elements other than by conversion to "
"a text string, string editing, and conversion back to an internalized label "
"is not supported by the MAC library.  Such interfaces may be added in the "
"future if they prove necessary for application writers."
msgstr ""
"В настоящее время прямое манипулирование элементами меток, кроме как путем "
"преобразования в текстовую строку, редактирования строки и обратного "
"преобразования во внутреннюю метку, не поддерживается библиотекой MAC. Такие "
"интерфейсы могут быть добавлены в будущем, если окажется, что они необходимы "
"разработчикам приложений."

#. type: Title ===
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5381
#, no-wrap
msgid "Binding of Labels to Users"
msgstr "Привязка меток к пользователям"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5385
msgid ""
"The standard user context management interface, man:setusercontext[3], has "
"been modified to retrieve MAC labels associated with a user's class from "
"man:login.conf[5].  These labels are then set along with other user context "
"when either `LOGIN_SETALL` is specified, or when `LOGIN_SETMAC` is "
"explicitly specified."
msgstr ""
"Стандартный интерфейс управления контекстом пользователя, "
"man:setusercontext[3], был изменён для получения меток MAC, связанных с "
"классом пользователя, из man:login.conf[5]. Эти метки устанавливаются вместе "
"с остальным контекстом пользователя, когда указан `LOGIN_SETALL` или явно "
"указан `LOGIN_SETMAC`."

#. type: delimited block = 4
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5390
msgid ""
"It is expected that, in a future version of FreeBSD, the MAC label database "
"will be separated from the [.filename]#login.conf# user class abstraction, "
"and be maintained in a separate database.  However, the "
"man:setusercontext[3] API should remain the same following such a change."
msgstr ""
"Ожидается, что в будущей версии FreeBSD база данных меток MAC будет отделена "
"от абстракции классов пользователей [.filename]#login.conf# и будет "
"поддерживаться в отдельной базе данных. Однако API man:setusercontext[3] "
"должно остаться неизменным после такого изменения."

#. type: Title ==
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5393
#, no-wrap
msgid "Conclusion"
msgstr "Заключение"

#. type: Plain text
#: documentation/content/en/books/arch-handbook/mac/_index.adoc:5398
msgid ""
"The TrustedBSD MAC framework permits kernel modules to augment the system "
"security policy in a highly integrated manner.  They may do this based on "
"existing object properties, or based on label data that is maintained with "
"the assistance of the MAC framework.  The framework is sufficiently flexible "
"to implement a variety of policy types, including information flow security "
"policies such as MLS and Biba, as well as policies based on existing BSD "
"credentials or file protections.  Policy authors may wish to consult this "
"documentation as well as existing security modules when implementing a new "
"security service."
msgstr ""
"Фреймворк TrustedBSD MAC позволяет модулям ядра расширять политику "
"безопасности системы высокоинтегрированным способом. Они могут делать это на "
"основе существующих свойств объектов или данных меток, которые "
"поддерживаются с помощью фреймворка MAC. Фреймворк достаточно гибкий для "
"реализации различных типов политик, включая политики безопасности "
"информационных потоков, такие как MLS и Biba, а также политики, основанные "
"на существующих учётных данных BSD или защите файлов. Авторам политик может "
"быть полезно ознакомиться с этой документацией, а также с существующими "
"модулями безопасности при реализации новой службы безопасности."