![如何授予普通用户对 FreeBSD 中特定系统调用的特权访问权限?](https://linux22.com/image/29350/%E5%A6%82%E4%BD%95%E6%8E%88%E4%BA%88%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E5%AF%B9%20FreeBSD%20%E4%B8%AD%E7%89%B9%E5%AE%9A%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8%E7%9A%84%E7%89%B9%E6%9D%83%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%EF%BC%9F.png)
我想赋予普通用户在 FreeBSD 上任意 fchown() 文件的能力(就好像他们是超级用户一样)。一般来说,是否有正确的方法来更改给定系统调用的权限检查?
我研究了 Capsicum,但对于有关该主题的所有文章来说,确实缺乏实际示例。
答案1
一种解决方案是创建您自己的程序,调用fchown()
,将其 chown 到 root:wheel 并设置 setuid 位 ( chmod +s
),使用 setuid 位运行的文件将以可执行文件的所有者身份运行。
警告
您没有提供任何特定的上下文,但请注意,允许用户fchown()
以 root 身份运行是进入整个系统访问权限的第一步。例如,人们可能会更改 的所有者/etc/{passwd,group,shadow}
,更改内容,再将所有者更改回来,然后很快!即时root。