在OpenBSD的一个文件夹上,不同组的权限不同?

是否有可能在OpenBSD中拥有文件系统权限ACL(或类似)? 我试图创build一个文件夹,其中一个组具有读写访问权限,而另一个组具有只读访问权限。 我不想给世界读访问权限,我不想限制写入访问单个用户,所以都需要由组权限控制。

编辑:有人build议OpenBSD可能根本没有ACL。 这很好。 问题依然存在:我怎么可能或甚至可能在OpenBSD中设置文件夹权限,使得一个组拥有写入权限,另一个组拥有只读权限,而世界却没有权限?

你不能。

下面是一个如何使用超级用户的BSD交叉引用来解决这个问题的例子。

您可以从open()函数开始,这是一个系统调用,所以它在内核sys_前缀定义。 searchsys_open 。 你可以在http://bxr.su/OpenBSD/sys/kern/vfs_syscalls.c#sys_openfind它。

如果你遵循sys_open()足够长的时间,你会发现有http://bxr.su/OpenBSD/sys/kern/vfs_vops.c#VOP_ACCESS

VOP_ACCESS() ,你会看到每个文件系统都有它自己的*_access函数来检查权限,这是一个存储在v_op->vop_access的指针。

searchvop_access引用,可以find文件系统的所有单独访问函数。 对于UFS,它是http://bxr.su/OpenBSD/sys/ufs/ufs/ufs_vnops.c#ufs_access

ufs_access() ,你可以看到它调用回共享的与文件系统无关的代码来validation权限 – http://bxr.su/OpenBSD/sys/kern/vfs_subr.c#vaccess

vaccess() ,你可以看到自己如何validation权限。

你想做的事情在OpenBSD中是不可能的,因为它没有ACL。

作为一种解决方法,您可以共享一个用户/组,并通过sudo和一些定制脚本实施您的ACL策略。