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