# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 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-03-04 20:01+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \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 или защите файлов. Авторам политик может " "быть полезно ознакомиться с этой документацией, а также с существующими " "модулями безопасности при реализации новой службы безопасности."