【问题标题】:ls: cannot open directory '.': Permission deniedls: 无法打开目录'.': 权限被拒绝
【发布时间】:2018-10-01 08:46:52
【问题描述】:

我的应用程序在 ec2 实例上运行。

我可以成功地将ssh 放入我的应用程序,但是当我将cd 放入正确的文件夹并运行ls 时,我收到以下错误:

ls: cannot open directory '.': Permission denied

这似乎与我的用户权限有关,因为运行应用程序也会引发 403 Forbidden 错误。

我的应用文件夹的权限如下:

d-wx-wx--x 17 ubuntu ubuntu 4096 Apr 20 10:53 application-name

我是否需要将其更改为其他内容才能使其正常工作?怎么做?

【问题讨论】:

    标签: amazon-web-services ubuntu amazon-ec2 file-permissions


    【解决方案1】:

    您没有文件夹的读取权限。

    运行chmod 775 application-name 以允许读取您的文件夹。

    您可以在此链接中找到有关 chmod 的更多信息:https://kb.iu.edu/d/abdb

    【讨论】:

      【解决方案2】:

      如果您没有足够的权限来读取该目录,则此错误是有意义的。尝试更改当前用户的权限或将访问模式更改为全局,即 777 例如:

      sudo bash
      chmod 775 .
      

      【讨论】:

      • 您几乎不应该对任何 UNIX 文件授予“777”权限。这是一个糟糕的安全建议。 '775' 是可以接受的。
      【解决方案3】:

      这基本上是由于当前用户没有足够的权限来读取/写入/执行该目录的内容。

      解决方法如下

      要授予用户对当前目录的权限,您可以这样做:

      sudo chmod 775 directory_name
      

      sudo chmod a+rwx,o-w directory_name
      

      要授予用户对当前目录、子目录和文件的权限,您可以这样做:

      sudo chmod -R 775 directory_name
      

      sudo chmod -R a+rwx,o-w directory_name
      

      注意

      • chmod 表示更改模式或更字面意义上的更改访问权限
      • -R 表示递归更改文件和目录。
      • a 表示所有用户
      • r 表示读取权限
      • w 表示写权限
      • x 表示执行权限
      • o 表示其他人
      • + 表示添加
      • - 表示删除。

      所以这意味着递归地为每个人添加读、写和执行权限,然后删除其他人的写权限。

      就是这样。

      我希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-29
        • 1970-01-01
        • 2020-05-31
        • 2011-06-22
        相关资源
        最近更新 更多