Fedora

如何使 /run/media/* 上的 ACL 設置持久化?

  • June 22, 2017

我在 Fedora 25 Workstation 主機上以訪客身份執行各種虛擬機。我將虛擬磁碟(和所有其他個人資料)儲存在第二個內置磁碟上的不同單獨分區上。virt-manager以使用者身份執行虛擬機qemu,為了啟動磁碟,我需要執行:

sudo setfacl -R -m u:qemu:rwx /run/media/cl

這讓qemu使用者可以使用這些虛擬磁碟來引導虛擬機。但是,如果我重新啟動主機系統,ACL 設置就會失去,我必須再次執行該命令。當我使用 Ubuntu 系統作為主機時,該命令只需要執行一次,並且權限更改在後續重新啟動後仍然有效。

如何讓基於 Red Hat 的系統在重啟後像 Ubuntu 一樣記住修改後的 ACL 設置?

這是一個 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帶你去你想去的地方,不是嗎?

引用自:https://unix.stackexchange.com/questions/372244