4.4. 管理非特权 SELinux 用户对非标准共享目录的访问
为非特权用户 user_u 配置非标准共享目录的访问权限。这个过程通过查找并将适当的 SELinux 文件类型映射到目录来限制访问。
user_u 用户有默认的角色 user_r 和默认的域 user_t。有关 相关命令 和通用非特权用户 user_u 的详情,请查看您系统中的 seinfo (1)、seinfo (1)和 user_selinux (8) 手册页。
先决条件
-
selinux-policy-doc和setools-console软件包已安装在您的系统上。
流程
在终端中打开
user_selinux (8)手册页:$ man user_selinux在
MANAGED FILES部分中,找到与您的场景对应的属性或类型。例如,user_home_type属性。可选:要列出分配给某个属性的所有类型,请使用
seinfo命令和-x和-a选项,例如:$ seinfo -x -a user_home_type Type Attributes: 1 attribute user_home_type; … chrome_sandbox_home_t config_home_t cvs_home_t data_home_t dbus_home_t fetchmail_home_t gconf_home_t git_user_content_t …确定相应类型的候选后(在本例中为
data_home_t类型),检查其 SELinux 映射:$ semanage fcontext -l | grep data_home_t … /root/\.local/share(/.*)? all files system_u:object_r:data_home_t:s0 …将相应的类型映射到您要使
user_u可访问的目录,例如/shared-data:$ semanage fcontext -a -t data_home_t '/shared-data(/.*)?'
验证
检查您配置的目录的映射:
# semanage fcontext -l | grep "shared-data" /shared-data(/.*)? all files system_u:object_r:data_home_t:s0-
以映射到
user_uSELinux 用户的 Linux 用户身份登录,并验证您是否可以访问目录。