我在服务器上专门为外部应用程序创建了一个用户。我希望该应用程序能够通过 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 上的这个答案以更深入地了解文件夹的权限。