4.4. 为非特权用户管理对非标准共享目录的访问
您可以通过查找和映射对应的 SELinux 文件类型,为通用非特权 SELinux 用户 user_u 配置对非标准共享目录的访问。user_u 用户具有默认角色 user_r 和默认域 user_t。
先决条件
-
selinux-policy-doc和setools-console软件包已安装在您的系统中。
步骤
在终端中打开
user_selinux (8)手册页:man user_selinux
$ man user_selinuxCopy 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:s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
以映射到
user_uSELinux 用户的 Linux 用户身份登录,并验证您可以访问该目录。