是否有一个命令可以拒绝其他人编辑我创建的目录?他们也有管理员权限,但我只想让他们读取文件而无法编辑/删除它。我知道 chmod 命令,但这仅提供权限,任何具有 root 权限的人仍然可以进行更改。
答案1
不可以。您无法采取任何措施来阻止其他拥有计算机 root 访问权限的人修改您的文件或目录。根据定义,根用户拥有完全访问权限,并且您可以设置的任何权限或 ACL 都可以轻松地由他们取消设置。
答案2
是的,有一个解决方案。
您应该剪切目录并将其放置在只有您拥有 root 访问权限和特权的服务器上。然后通过该服务器的 NFS 与所有其他用户共享该目录,并使用 root squash 限制他们只能读取。
参考:
Root Squash 是在使用身份验证时减少远程超级用户(root)的访问权限(本地用户与远程用户相同)。它主要是 NFS 的一项功能,但也可以在其他系统上使用。
当远程文件系统由多个用户共享时,就会出现此问题。这些用户属于一个或多个组。在 Unix 中,每个文件和文件夹通常对所有者(通常是文件的创建者)、所有者所属的组以及“世界”(所有其他用户)具有单独的权限(读、写、执行) 。这允许仅对授权用户进行读写访问限制,而通常 NFS 服务器还必须受到防火墙的保护。
超级用户比普通用户拥有更多的权限,能够更改文件所有权、设置任意权限以及访问所有受保护的内容。即使确实需要对各个工作站具有 root 访问权限的用户也可能无权在共享文件系统上执行类似的操作。 root 挤压会减少远程 root 的权限,使其不再是超级用户。在类 UNIX 系统上,可以在服务器端的 /etc/exports 文件中打开和关闭 root squash 选项。
实施根挤压后,授权超级用户直接登录 NFS 服务器后执行受限操作,而不仅仅是挂载导出的 NFS 文件夹。
答案3
是的。如果您创建一个新组,然后仅将您添加到该组中,则可以确保只有该组可以编辑该文件。方法如下:首先使用groupadd创建一个新组
groupadd -g {uniqueid}{newgroupname}
例子:
groupadd -g 1234 newgroup
现在我们必须添加用户:
sudo usermod -G {newgroupname} {username}
现在只需将该组的权限添加到文件中,我通常使用 gui 来实现此目的,所以我不知道如何使用 cli。现在,这一切都假设他拥有wheel组权限(默认管理组)或管理员权限,而不是root权限,在这种情况下这是不可能的。