为什么我不能进入用户(非所有者组)的目录

为什么我不能进入用户(非所有者组)的目录

我在服务器上专门为外部应用程序创建了一个用户。我希望该应用程序能够通过 ssh 进入用户帐户并进入目录。但是,当我尝试这样做时,它一直说权限被拒绝。我将文件夹的权限设置为“访问”,以为这样就可以了。

以下是文件夹权限的屏幕截图:

在此处输入图片描述

是什么赋予了?

答案1

您的父文件夹也必须是可读的(在某种意义上)。

例如,我有一个文件夹test,里面还有另一个文件夹test2。权限如下:

drwxrwx---   3 kazwolfe kazwolfe     4096 Dec 30 13:18 test/
drwxrwxr-x   2 kazwolfe nogroup      4096 Dec 30 13:18 test/test2

如您所见,nobody用户(的成员nogroup)拥有的权限test/test2,但无法cd进入:

cd: test/test2: Permission denied

为什么?简单来说,因为用户nobody没有权限读取。因此,即使他们有权限,test他们也无法访问 的任何子目录或子文件!test

为了解决这个问题,我需要确保chmod a+x test设置了任何父文件夹的执行位(),以便我可以遍历所需的文件夹:

┌─[13:35:22]─[nobody@ArcticWolf]
└──> ~ $ cd test
┌─[13:35:24]─[nobody@ArcticWolf]
└──> test $ ll
ls: cannot open directory '.': Permission denied
┌─[✗]─[13:35:27]─[nobody@ArcticWolf]
└──> test $ cd test2
┌─[13:35:31]─[nobody@ArcticWolf]
└──> test2 $ touch hello
┌─[13:35:34]─[nobody@ArcticWolf]
└──> test2 $ ll
total 8
drwxrwxr-x 2 kazwolfe nogroup  4096 Dec 30 13:35 ./
drwxrwx--x 3 kazwolfe kazwolfe 4096 Dec 30 13:22 ../
-rw-r--r-- 1 nobody   nogroup     0 Dec 30 13:35 hello

请注意,设置文件夹的执行位允许用户访问文件夹内的任何内容他们有权限并且知道存在。 看U&L 上的这个答案以更深入地了解文件夹的权限。

相关内容