进一步阅读

进一步阅读

我正在编写一组脚本来配置游戏服务器。

我将每个游戏服务器作为单独的用户安装,以便它们都是隔离的并且无法访问彼此的文件。

处理配置的守护进程/服务器作为非特权用户运行,具有创建用户的 sudo 权限。

我现在正在开发一项功能,要求守护进程能够代表用户编辑文件服务器已配置。

我正在考虑将守护进程添加到像“admin”这样的组中,将所有用户文件上的组设置为具有组权限的“admin”,以便守护进程可以读取和写入他们的文件 - 尽管将单个用户排除在“admin”之外" 组,这样他们就无法读取彼此的文件。

这适用于首次安装,我可以设置 setgid 位以确保新文件和文件夹继承“admin”组。然而,用户可以“chgrp”到他们自己的组,这会破坏这个系统。守护进程无法再访问这些文件,甚至用户也无法将组恢复为“admin”,因为他们不属于该组。

有没有办法:

  1. 为了防止游戏服务器用户将其文件组更改为“admin”以外的任何组,因此上述方法将起作用;或者
  2. 有没有更好的方法来实现我在这里想要实现的目标?

答案1

所有权访问包括设置组 ID、权限位和 ACL 的访问权限;因此,您无法阻止文件所有者设置这些内容。

当然,这句话中隐藏着两种不同方法的种子:

  1. 首先不要授予所有权访问权限。 不要使用户帐户成为文件的所有者。相反,使用ACLsetfacl授予单个用户帐户(或其他帐户)访问权限。rwx使它们归其他某个帐户所有,分配给该帐户不属于的组,并且无法全局访问。这里的缺点是磁盘配额之类的事情。
  2. 使用所有者可以重新打开的访问控制形式。使单个用户帐户成为所有者,但用于在 ACL 中setfacl授予守护程序帐户(或其他帐户)访问权限。rw-这里的缺点是用户帐户可以首先关闭访问权限。

根据需要评估权衡。如果要在所有创建的文件上自动设置这些 ACL,请使用父目录中的默认 ACL。

进一步阅读

相关内容