4.4. 为非特权用户管理对非标准共享目录的访问
您可以通过查找和映射对应的 SELinux 文件类型,为通用非特权 SELinux 用户 user_u
配置对非标准共享目录的访问。user_u
用户具有默认角色 user_r
和默认域 user_t
。
先决条件
-
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_u
SELinux 用户的 Linux 用户身份登录,并验证您可以访问该目录。
其他资源
-
seinfo (1)
,semanage-fcontext (8)
, 和user_selinux (8)
man page