允许 root 用户读取、写入、执行,文件夹所有者只读,其他所有人都无权访问文件夹 ubuntu

允许 root 用户读取、写入、执行,文件夹所有者只读,其他所有人都无权访问文件夹 ubuntu

我正在制作一个类似于 overthewire.org 上的“战争游戏”。我有 root 用户 Ubuntu,该用户应该能够读取、写入和执行文件夹中的文件。每个文件夹都有一个用户,该用户应该对该文件夹中的文件具有只读访问权限,而其他所有人都无权访问该文件夹。执行此操作的 chmod 命令是什么?谢谢!

答案1

更好的方法是使用(NFSv4 样式)ACL,它支持比 POSIX 模型更细粒度的权限,尽管由于您需要 chmod 而不完全在可接受的答案范围内。

虽然使用只有一个用户的“主要用户”组可能会起作用,但正如讨论的那样,它们并不总是存在,可以添加其他用户,并且可以删除主要用户。

答案2

您需要将用户设置为所有者chown -R <username> <foldername>(-R 递归操作),然后将权限设置为仅限用户读取chmod -R 400 <foldername>。无论设置了什么权限,root 都可以读取和写入文件。现在您将遇到的问题是,除非设置了至少一个执行位,否则 root 将无法执行任何文件,因此您必须让所有者用户也使用 执行文件chmod -R 500 <foldername>

这里对文件权限进行了很好的解释。

答案3

我有 root 用户,Ubuntu,[…]

我不知道你是否提到 root用户或某些常规的ubuntu您在游戏中将其视为 root 用户的用户。不过,这不会对我的回答产生太大影响。

在 Ubuntu 中,每个普通用户默认都有自己的组。此类组默认仅包含其对应的用户。这使得以下技巧成为可能:

sudo chown ubuntu:bob fileA
sudo chmod 740 fileA

这样ubuntu就拥有了所有的权限,并且bob(作为组的唯一成员bob)只能读取该文件。

你可以反过来做:

# but don't! explanation below
sudo chown bob:ubuntu fileA
sudo chmod 470 fileA

bob所有者可以chmod给自己过多的权限,或者从组中拿走这些权限ubuntu,或者篡改“其他人的”权限。任何建议你让bob所有者考虑这个缺陷的答案。

您可能希望以类似但略有不同的方式设置目录所有权和权限。您可能希望以递归方式进行这些更改。请注意,这chown -R会影响目录和文件,这就是为什么您需要一种可以区分它们的方法。请参阅这个答案。该方法可与 和其他工具配合使用chmodchown请根据您的需要进行调整。

递归地授予目录读取和执行权限:

find /path/to/base/dir -type d -exec chmod 755 {} +

递归地授予文件读取权限:

find /path/to/base/dir -type f -exec chmod 644 {} +

相关内容