我正在尝试设置一个 Minecraft 服务器,我决定以受限用户的身份运行该服务器,该用户只能访问 Minecraft 服务器目录。我无法让用户获得权限,即使我将所有者设置为用户,并将 777 设置为目录。因此,我将目录的访问权限设置为 777,但我仍然无法访问该目录。您知道我遗漏了什么吗?谢谢,Max
编辑:好的,我通过打开 minecraft 服务器文件夹所在的目录解决了这个问题。这总是需要的吗?例如:我的服务器在/srv/minecraftServer/
我minecraftServer
向server
用户打开了,但没有srv
。当我打开时srv
(允许受限用户也查看我的网络主机,不再是真正的受限用户),用户可以访问目录minecraftServer
。这是正常的吗?有办法解决这个问题吗?
答案1
永远永远永远不要使用 777 权限作为修复!
好的,现在我已经解决了这个问题......
查看目录的权限时,要记住这一点:用户必须对 / 和目标目录之间的所有目录具有执行权限。
对于文件权限,读/写/执行位是有意义的,但对于目录,它们的含义略有不同。读写表示您可以读取和写入目录内的文件,而执行表示您可以遍历目录(您可以通过“cd”进入目录)。
阅读权限 - 如果您理解不同的部分,那么就可以获得更多的控制。 http://en.wikipedia.org/wiki/Filesystem_permissions
永远不要使用 777 — 它(几乎)从来没有必要,而且它始终是一个坏主意。
答案2
或许设置了粘性位或类似的东西,这可能与目录继承权限有关。chmod
尝试0777
。
答案3
套用 baumgart 的话,不要养成用 777 修复权限问题的习惯(我猜你的意思是“打开 minecraft 所在的目录”)。为了验证权限是否是问题,这样做可能没问题,但不应该这样。最有可能 755(或者如果你喜欢符号,则为 u=rwx,g=rx,o=rx)就是你所需要的。用户需要能够读取和执行才能进入目录。这是目录权限的工作方式,因此实际上没有任何方法可以解决这个问题。
通过使用访问控制列表,可以实现更精细的控制,但这会使权限变得相当混乱。不过,您仍然需要用户拥有读取和执行权限才能访问目录。