我有各种虚拟机作为来宾在 Fedora 25 工作站主机上运行。我将虚拟磁盘(以及所有其他个人资料)存储在第二个内置磁盘的不同单独分区上。virt-manager
以用户身份运行虚拟机qemu
,为了启动磁盘,我需要执行:
sudo setfacl -R -m u:qemu:rwx /run/media/cl
这允许qemu
用户使用这些虚拟磁盘来启动虚拟机。但是,如果我重新启动主机系统,ACL 设置就会丢失,我必须再次运行该命令。当我使用 Ubuntu 系统作为主机时,该命令只需要运行一次,并且权限更改在后续重新启动后仍然有效。
如何才能使基于 Red Hat 的系统像 Ubuntu 一样在重新启动后记住修改后的 ACL 设置?
答案1
这是一个 hack,但您可以编写一个快速systemd
服务来在启动时运行它,也许在/etc/systemd/system/set-qemu-acl.service
.
[Unit]
Description=QEMU ACL Hack
Requires=local-fs.target
After=local-fs.target
[Service]
ExecStart=/usr/bin/setfacl -R -m u:qemu:rwx /run/media/cl
[Install]
WantedBy=multi-user.target
然后,只需启用它即可。
sudo systemctl enable set-qemu-acl.service
您也可以在系统表中添加一行cron
。
* * * * * root /usr/bin/getfacl /run/media/cl | grep 'user:qemu:rwx' || /usr/bin/setfacl -R -m u:qemu:rwx /run/media/cl
或者,由于您是手动安装,因此包装器脚本可以为您完成,也许/usr/local/bin/mount-acl
。
#!/bin/sh
mount $1 $2
setfacl -R -m u:qemu:rwx $2
然后,sudo mount-acl /dev/partition /run/media/wherever
就能带你去你想去的地方,不是吗?