Permissions

符號連結上的 udev GROUP 和 MODE 分配無效

  • December 27, 2013

我正在嘗試通過 USB 將我的 veleman k8055 板連接到我的電腦。為此,我有 udev 規則

SUBSYSTEM !="usb_device", ACTION !="add", GOTO="velleman_rules_end"

ATTRS{idVendor}=="10cf", ATTRS{idProduct}=="5500", MODE="0660", GROUP="k8055", SYMLINK+="k8055_0"
ATTRS{idVendor}=="10cf", ATTRS{idProduct}=="5501", MODE="0660", GROUP="k8055", SYMLINK+="k8055_1"
ATTRS{idVendor}=="10cf", ATTRS{idProduct}=="5502", MODE="0660", GROUP="k8055", SYMLINK+="k8055_2"
ATTRS{idVendor}=="10cf", ATTRS{idProduct}=="5503", MODE="0660", GROUP="k8055", SYMLINK+="k8055_3"

LABEL="velleman_rules_end"

來自jeremyz 的 k8055 github 儲存庫

插入電路板後,我什至得到了 k8055_0 符號連結,但它的權限是 root:root。

但我希望來自組 k8055 的使用者可以訪問此連結(這在 root:root 權限下是不可能的)。

GROUP 和 MODE 確實有效果。它們影響設備節點,而不是符號連結。

Linux 不支持符號連結的權限。所有符號連結都是世界可讀的,不能寫入(只能被新連結覆蓋)。因此,符號連結是否屬於 root 並不重要:其他使用者無論如何都可以訪問它。

由於設備節點具有您指定的組和權限,因此您將獲得所需的訪問控制。組中的使用者k8055可以訪問設備(通過符號連結或直接);該組之外的使用者可以看到符號連結指向的位置,但無法訪問該設備。

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