26.6.5 文件扩展属性

在部分操作系统中,每个文件可以关联任意的文件扩展属性(extended file attributes)。目前 Emacs 支持查询和设置两类特定的文件扩展属性:访问控制列表(ACL)和 SELinux 上下文。在部分系统上,这些扩展属性用于实现比前几节所述的基础 Unix 风格权限更精细的文件访问控制。

关于 ACL 和 SELinux 的详细说明超出了本手册范围。就本节用途而言,每个文件可以关联一个ACL(在基于 ACL 的文件控制系统中描述其权限属性)和/或一个SELinux 上下文(在 SELinux 系统中描述其安全属性)。

Function: file-acl filename

该函数返回文件 filename 的 ACL。ACL 在 Lisp 中的具体表示形式未明确指定(未来 Emacs 版本可能发生变化),但其格式与 set-file-acl 接收的 acl 参数一致(see 修改文件名与属性)。

底层 ACL 实现与平台相关:在 GNU/Linux 和 BSD 系统上,Emacs 使用 POSIX ACL 接口;在 MS-Windows 上,Emacs 通过原生文件安全 API 模拟 POSIX ACL 接口。

若系统不支持 ACL 或文件不存在,返回值为 nil

Function: file-selinux-context filename

该函数返回文件 filename 的 SELinux 上下文,格式为列表 (user role type range)。列表元素依次为上下文的用户、角色、类型和范围,均为 Lisp 字符串;具体含义可参考 SELinux 文档。返回值格式与 set-file-selinux-context 接收的 context 参数一致(see 修改文件名与属性)。

若系统不支持 SELinux 或文件不存在,返回值为 (nil nil nil nil)

Function: file-extended-attributes filename

该函数返回文件 filename 中 Emacs 可识别的扩展属性关联列表(alist)。目前该函数可一次性获取 ACL 和 SELinux 上下文;之后可调用 set-file-extended-attributes,将返回的关联列表作为第二个参数,把相同的文件访问属性应用到另一个文件(see 修改文件名与属性)。

其中一个元素为 (acl . acl)acl 格式与 file-acl 返回值一致。

另一个元素为 (selinux-context . context)context 为 SELinux 上下文,格式与 file-selinux-context 返回值一致。


emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike