添加 SELinux 规则以授予用户对特定文件的读/写访问权限

添加 SELinux 规则以授予用户对特定文件的读/写访问权限

我当前遇到一个问题,我的计算机上的用户无法qemu访问某些文件。例如/dev/shm/looking-glass

我已经跑了:

sudo setfacl --modify user:$(logname):rw "/dev/shm/looking-glass"
sudo setfacl --modify user:qemu:rw "/dev/shm/looking-glass"

以下是有关该文件权限的更多信息:

$ ls -la /dev/shm/looking-glass 
-rw-rw----+ 1 qemu kvm 33554432 Jul 29 01:29 /dev/shm/looking-glass

$ getfacl /dev/shm/looking-glass 
getfacl: Removing leading '/' from absolute path names
# file: dev/shm/looking-glass
# owner: qemu
# group: kvm
user::rw-
user:qemu:rw-
user:fedora:rw-
group::rw-
mask::rw-
other::---

该特定文件的文件权限和所有权是通过systemd-tmpfiles以下方式管理的:

$ cat /etc/tmpfiles.d/10-looking-glass.conf
#Type Path               Mode UID  GID Age Argument
f /dev/shm/looking-glass 0660 qemu kvm - 

我也尝试setfacl直接使用 on/dev/dev/shm,但这完全搞乱了我的系统,而且无论如何也没有帮助,所以我不得不撤消它。

现在如果我简单地将 SELinux 设置为宽容 ( sudo setenforce 0)

用户qemu可以毫无问题地访问该文件。

但我想让 SELinux 设置为强制执行,所以这不是一个选择。

现在我的问题是:如何向 SELinux 添加规则来授予给定用户访问给定文件的权限?

我能找到的唯一相关问题是这只是为 systemd 服务添加规则,所以这对我的情况没有帮助。

相关内容