是否可以在 sysfs 挂载点设置 ACL?

是否可以在 sysfs 挂载点设置 ACL?

我想/sys/power/state通过 ACL 为我的 UID 添加写访问权限,这样我就不需要使用须藤或者任何 setuid 程序可以让我的工作站进入睡眠模式,这可能吗?我按照手册尝试了一下,结果出现了这个错误:

➜  ~  sudo setfacl -m u:nelson:w /sys/power/state
setfacl: /sys/power/state: Invalid argument

看起来发生的事情并不是我所想的那样,

有人能给我解释一下吗?我不明白为什么这个setfacl命令表现得像是在向 FIFO 写入内容

答案1

/sys可能无法对任何内容设置 ACL 。sysfs文件系统最初基于 ramfs,不支持扩展 ACL。

我对 setfacl 命令进行了 strace 操作,在返回 EINVAL 的调用之前setxattr,有一个getxattr调用给出了不支持该操作的错误:

getxattr("/sys/power/state", "system.posix_acl_access", 0x7fff4ab593c0, 132) = -1 EOPNOTSUPP (Operation not supported)

相关内容