\sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/security/landlockmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_TW/security/landlockmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/security/landlockmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/security/landlockmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/security/landlockmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/security/landlockmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhR/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/security/landlock.rsthKubh)}(h7Copyright ? 2017-2020 Micka?l Salaün h]h7Copyright ? 2017-2020 Micka?l Salaün }hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubh)}(hCopyright ? 2019-2020 ANSSIh]hCopyright ? 2019-2020 ANSSI}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h$Documentation/security/landlock.rst h]h)}(h#Documentation/security/landlock.rsth]h#Documentation/security/landlock.rst}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hhhKubj)}(h3毛玉贤 Yuxian Mao h]h)}(h2毛玉贤 Yuxian Mao h](h毛玉贤 Yuxian Mao <}(hj<hhhNhNubh reference)}(hmaoyuxian@cqsoftware.com.cnh]hmaoyuxian@cqsoftware.com.cn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:maoyuxian@cqsoftware.com.cnuh1jDhj<ubh>}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj8ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(hLandlock LSM: 内核文档h]hLandlock LSM: 内核文档}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjthhhhhKubh)}(hhh](h)}(hhh](h)}(h作者h]h作者}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubj)}(hMickaël Salaünh]h)}(hjh]hMickaël Salaün}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(h日期h]h日期}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubj)}(h 2022年12月 h]h)}(h 2022年12月h]h 2022年12月}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]h ]h"]h$]h&]uh1hhjthhhhhKubh)}(hXLandlock的目标是创建有范围的访问控制(即沙箱机制)。为了增强整个 系统的安全性,此功能应适用于任何进程,包括非特权进程。因为这些进 程可能被攻击或植入后门(即不可信任的),所以从内核和其他进程的角 度来看,Landlock的功能必须安全可用。因此,Landlock 的接口设计应当 尽量减少可能的攻击点。h]hXLandlock的目标是创建有范围的访问控制(即沙箱机制)。为了增强整个 系统的安全性,此功能应适用于任何进程,包括非特权进程。因为这些进 程可能被攻击或植入后门(即不可信任的),所以从内核和其他进程的角 度来看,Landlock的功能必须安全可用。因此,Landlock 的接口设计应当 尽量减少可能的攻击点。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjthhubh)}(hLandlock 旨在为非特权进程使用,同时遵循由其他访问控制机制(例如 DAC、LSM) 强制执行的系统安全策略。Landlock 规则不应与系统上强制执行的其他访问 控制相冲突,而只能添加额外的限制。h]hLandlock 旨在为非特权进程使用,同时遵循由其他访问控制机制(例如 DAC、LSM) 强制执行的系统安全策略。Landlock 规则不应与系统上强制执行的其他访问 控制相冲突,而只能添加额外的限制。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjthhubh)}(h任何用户都可以在其进程上强制执行Landlock规则集。这些规则集会以一种 确保只能添加更多约束的方式与继承的规则集合并和评估。h]h任何用户都可以在其进程上强制执行Landlock规则集。这些规则集会以一种 确保只能添加更多约束的方式与继承的规则集合并和评估。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjthhubh)}(hE用户空间文档如下: Documentation/userspace-api/landlock.rst.h]hE用户空间文档如下: Documentation/userspace-api/landlock.rst.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjthhubjs)}(hhh](jx)}(h$安全访问控制机制指导原则h]h$安全访问控制机制指导原则}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj%hhhhhK%ubh bullet_list)}(hhh](h list_item)}(hLandlock规则应侧重于对内核对象的访问控制,而非系统调用过滤(即 系统调用参数),后者是seccomp-bpf要侧重的。h]h)}(hLandlock规则应侧重于对内核对象的访问控制,而非系统调用过滤(即 系统调用参数),后者是seccomp-bpf要侧重的。h]hLandlock规则应侧重于对内核对象的访问控制,而非系统调用过滤(即 系统调用参数),后者是seccomp-bpf要侧重的。}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hj=ubah}(h]h ]h"]h$]h&]uh1j;hj8hhhhhNubj<)}(h为了避免多种侧信道攻击(例如安全策略泄露、基于CPU的攻击),Landlock 规则不应与用户空间进行程序化通信。h]h)}(h为了避免多种侧信道攻击(例如安全策略泄露、基于CPU的攻击),Landlock 规则不应与用户空间进行程序化通信。h]h为了避免多种侧信道攻击(例如安全策略泄露、基于CPU的攻击),Landlock 规则不应与用户空间进行程序化通信。}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjUubah}(h]h ]h"]h$]h&]uh1j;hj8hhhhhNubj<)}(hH内核访问检查不应降低未沙盒化进程的访问请求速度。h]h)}(hjoh]hH内核访问检查不应降低未沙盒化进程的访问请求速度。}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjmubah}(h]h ]h"]h$]h&]uh1j;hj8hhhhhNubj<)}(hn与 Landlock 操作相关的计算(例如强制执行规则集)应仅影响请求这些 操作的进程。h]h)}(hn与 Landlock 操作相关的计算(例如强制执行规则集)应仅影响请求这些 操作的进程。h]hn与 Landlock 操作相关的计算(例如强制执行规则集)应仅影响请求这些 操作的进程。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1j;hj8hhhhhNubj<)}(h由沙盒化进程直接从内核中获得的资源(例如文件描述符)在被任何进程 使用时,都应保留其获取时的作用域访问权限。 Cf. `文件描述符访问权限`_. h]h)}(h由沙盒化进程直接从内核中获得的资源(例如文件描述符)在被任何进程 使用时,都应保留其获取时的作用域访问权限。 Cf. `文件描述符访问权限`_.h](h由沙盒化进程直接从内核中获得的资源(例如文件描述符)在被任何进程 使用时,都应保留其获取时的作用域访问权限。 Cf. }(hjhhhNhNubjE)}(h`文件描述符访问权限`_h]h文件描述符访问权限}(hjhhhNhNubah}(h]h ]h"]h$]h&]name文件描述符访问权限refidid3uh1jDhjresolvedKubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j;hj8hhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1j6hhhK'hj%hhubeh}(h]id1ah ]h"]$安全访问控制机制指导原则ah$]h&]uh1jrhjthhhhhK%ubjs)}(hhh](jx)}(h 设计选择h]h 设计选择}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhK3ubjs)}(hhh](jx)}(hinode访问权限h]hinode访问权限}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhK6ubh)}(hX}所有访问权限都与inode以及通过inode所访问到的内容相关。读取目录的 内容并不意味着有权读取该目录中列出的 inode 所对应文件的内容。实际 上,文件名是相对于其父目录而言的 ,一个 inode 可以通过多个文件名 (通过硬链接)来引用。删除文件链接这一操作仅直接影响对应目录,而 对被移除链接的inode并无影响。这就是“LANDLOCK_ACCESS_FS_REMOVE_FILE” (文件系统移除文件访问权限)或“LANDLOCK_ACCESS_FS_REFER” (文件系 统引用访问权限)不能与文件绑定,而只能与目录绑定的原因。h]hX}所有访问权限都与inode以及通过inode所访问到的内容相关。读取目录的 内容并不意味着有权读取该目录中列出的 inode 所对应文件的内容。实际 上,文件名是相对于其父目录而言的 ,一个 inode 可以通过多个文件名 (通过硬链接)来引用。删除文件链接这一操作仅直接影响对应目录,而 对被移除链接的inode并无影响。这就是“LANDLOCK_ACCESS_FS_REMOVE_FILE” (文件系统移除文件访问权限)或“LANDLOCK_ACCESS_FS_REFER” (文件系 统引用访问权限)不能与文件绑定,而只能与目录绑定的原因。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubeh}(h]inodeah ]h"]inode访问权限ah$]h&]uh1jrhjhhhhhK6ubjs)}(hhh](jx)}(h文件描述符访问权限h]h文件描述符访问权限}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhKAubh)}(hX在打开文件时,会检查访问权限并将其与文件描述符绑定。其基本原则是, 当在相同的 Landlock 域下执行时,等效的操作序列会产生相同的结果。 以LANDLOCK_ACCESS_FS_TRUNCATE权限为例,如果相关的文件层次结构没有 授予该访问权限,那么可能允许打开一个文件进行写操作,但不允许使用 ftruncate调用截断由此产生的文件描述符。 以下操作序列具有相同的语义,因此会产生相同的结果:h]hX在打开文件时,会检查访问权限并将其与文件描述符绑定。其基本原则是, 当在相同的 Landlock 域下执行时,等效的操作序列会产生相同的结果。 以LANDLOCK_ACCESS_FS_TRUNCATE权限为例,如果相关的文件层次结构没有 授予该访问权限,那么可能允许打开一个文件进行写操作,但不允许使用 ftruncate调用截断由此产生的文件描述符。 以下操作序列具有相同的语义,因此会产生相同的结果:}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjhhubj7)}(hhh](j<)}(h``truncate(path);``h]h)}(hj7h]hliteral)}(hj7h]htruncate(path);}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj9ubah}(h]h ]h"]h$]h&]uh1hhhhKJhj5ubah}(h]h ]h"]h$]h&]uh1j;hj2hhhhhNubj<)}(h=``int fd = open(path, O_WRONLY); ftruncate(fd); close(fd);`` h]h)}(h<``int fd = open(path, O_WRONLY); ftruncate(fd); close(fd);``h]j=)}(hj]h]h8int fd = open(path, O_WRONLY); ftruncate(fd); close(fd);}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj[ubah}(h]h ]h"]h$]h&]uh1hhhhKKhjWubah}(h]h ]h"]h$]h&]uh1j;hj2hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j6hhhKJhjhhubh)}(hX与文件访问模式类似(例如O_RDWR),即使文件描述符在进程之间传递 (例如通过Unix域套接字),文件描述符中的Landlock访问权限也会被保留。 这些访问权限即使在接收进程未被 Landlock 沙盒化的情况下也会被强制执行。 事实上,这是为了保持整个系统访问控制的一致性,避免通过文件描述符传递 而无意中绕过安全限制(即“混淆代理攻击”)。h]hX与文件访问模式类似(例如O_RDWR),即使文件描述符在进程之间传递 (例如通过Unix域套接字),文件描述符中的Landlock访问权限也会被保留。 这些访问权限即使在接收进程未被 Landlock 沙盒化的情况下也会被强制执行。 事实上,这是为了保持整个系统访问控制的一致性,避免通过文件描述符传递 而无意中绕过安全限制(即“混淆代理攻击”)。}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjhhubeh}(h]jah ]h"]文件描述符访问权限ah$]h&]uh1jrhjhhhhhKA referencedKubeh}(h]id2ah ]h"] 设计选择ah$]h&]uh1jrhjthhhhhK3ubjs)}(hhh](jx)}(h测试h]h测试}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhKTubh)}(h用户空间的向后兼容性测试、ptrace 限制测试和文件系统支持测试可以在这里 找到:tools/testing/selftests/landlock/h]h用户空间的向后兼容性测试、ptrace 限制测试和文件系统支持测试可以在这里 找到:tools/testing/selftests/landlock/}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjhhubeh}(h]id4ah ]h"]测试ah$]h&]uh1jrhjthhhhhKTubjs)}(hhh](jx)}(h 内核结构h]h 内核结构}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhKZubjs)}(hhh](jx)}(h对象h]h对象}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhK]ubh)}(h!该API在以下内核代码中:h]h!该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjhhubh)}(hsecurity/landlock/object.hh]hsecurity/landlock/object.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjhhubeh}(h]id6ah ]h"]对象ah$]h&]uh1jrhjhhhhhK]ubjs)}(hhh](jx)}(h 文件系统h]h 文件系统}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj hhhhhKdubh)}(h!该API在以下内核代码中:h]h!该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj hhubh)}(hsecurity/landlock/fs.hh]hsecurity/landlock/fs.h}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj hhubeh}(h]id7ah ]h"] 文件系统ah$]h&]uh1jrhjhhhhhKdubjs)}(hhh](jx)}(h规则集和域h]h规则集和域}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj>hhhhhKkubh)}(hXs域是与一组主体(即任务凭证)关联的只读规则集。每次在任务上执行规则集时, 都会复制当前域,并在新域中导入规则集作为新的规则层。 事实上,一旦进入 一个域,每条规则都与一个层级绑定。要授予对对象的访问权限,每一层中至少 有一条规则必须允许对该对象执行请求操作。然后,任务只能过渡到一个新的域, 该新域是当前域的约束和任务提供的规则集的约束的交集。任务自行沙盒化时, 主体的定义是隐式的,这使得推理变得更加简单,并有助于避免陷阱。h]hXs域是与一组主体(即任务凭证)关联的只读规则集。每次在任务上执行规则集时, 都会复制当前域,并在新域中导入规则集作为新的规则层。 事实上,一旦进入 一个域,每条规则都与一个层级绑定。要授予对对象的访问权限,每一层中至少 有一条规则必须允许对该对象执行请求操作。然后,任务只能过渡到一个新的域, 该新域是当前域的约束和任务提供的规则集的约束的交集。任务自行沙盒化时, 主体的定义是隐式的,这使得推理变得更加简单,并有助于避免陷阱。}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhj>hhubh)}(h!该API在以下内核代码中:h]h!该API在以下内核代码中:}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj>hhubh)}(hsecurity/landlock/ruleset.hh]hsecurity/landlock/ruleset.h}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhj>hhubh)}(hLinksh]hLinks}hjysbah}(h]h ]h"]h$]h&]hhuh1hhj>hhhhhKxubhtarget)}(h&.. _tools/testing/selftests/landlock/:h]h}(h]h ]h"]h$]h&]j tools-testing-selftests-landlockuh1jhKhj>hhhhubh)}(hghttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/tools/testing/selftests/landlock/h]jE)}(hjh]hghttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/tools/testing/selftests/landlock/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jDhjubah}(h]jah ]h"]!tools/testing/selftests/landlock/ah$]h&]uh1hhhhK{hj>hhexpect_referenced_by_name}jjsexpect_referenced_by_id}jjsubeh}(h]id8ah ]h"]规则集和域ah$]h&]uh1jrhjhhhhhKkubeh}(h]id5ah ]h"] 内核结构ah$]h&]uh1jrhjthhhhhKZubeh}(h] landlock-lsmah ]h"]landlock lsm: 内核文档ah$]h&]uh1jrhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jwN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}文件描述符访问权限]jasrefids}j]jasnameids}(jjjjjjjj jjjjjjjjj;j8jjjju nametypes}(jjjjjjjjj;jjuh}(jjtjj%jjj jjjjjjjjjj8j jj>jju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]hFHyperlink target "tools-testing-selftests-landlock" is not referenced.}hjXsbah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jSuba transformerN include_log]6Documentation/translations/zh_CN/security/landlock.rst(NNNNta decorationNhhub.