授予没有所有权的其他用户对 opt 目录的完整权限

授予没有所有权的其他用户对 opt 目录的完整权限

我正在尝试为多个用户提供完全权限,以便他们在特定目录上执行任何他们想要的操作,并确保没有人可以拥有该目录内的任何文件或文件夹的所有权。例如,假设我想提供其他完全权限的目录是/opt;如果我将 opt 目录的权限设置为 777 或 7777,而用户 1 尝试创建另一个文本文件,那么他将声明该文本文件的所有权,并且没有人拥有编辑它的完整权限,因此我创建了一个cron作业,每 10 秒将所有权和权限更改为默认值(所有者:root,权限级别为 777),但这给我带来了一个问题,用户现在无法替换或复制子目录(权限被拒绝错误)。我在这里做错了什么?

答案1

您可以使用 SGID 位来控制目录及其中创建的文件的组所有权。例如,您可以将所有需要访问的用户添加到 /etc/group 中的“optuser”组。然后,更改目录的组所有权并设置位

chgrp -R optuser /opt
find /opt -type d -exec chmod g+s {} +

当在 opt 下创建新文件时,它们将继承该组,并且如果您使用默认 umask,该组中的所有用户都将具有写权限。请注意,用户具有写访问权限,因此他们可以根据需要更改文件的权限和所有权。

答案2

您没有使用 POSIX ACL。这就是问题所在。使用 cron 修复权限是一场噩梦。在文件系统上启用 POSIX ACL,然后使用它们。这样您的权限将非常灵活和复杂man setfacl getfacl。。

相关内容