ls: 无法打开目录 '.': 权限被拒绝

ano*_*432 4 ubuntu file-permissions amazon-ec2 amazon-web-services

我的应用程序在一个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

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

Nah*_*eek 16

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

sudo bash
chmod 775 .
Run Code Online (Sandbox Code Playgroud)

  • 您几乎不应该授予任何 UNIX 文件的“777”权限。这是一个糟糕的安全建议。“775”是可以接受的。 (3认同)

Dea*_*Eye 5

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

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

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


Pro*_*ton 5

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

以下是修复它的方法

要仅授予用户对当前目录的权限,您可以执行以下操作:

sudo chmod 775 directory_name
Run Code Online (Sandbox Code Playgroud)

或者

sudo chmod a+rwx,o-w directory_name
Run Code Online (Sandbox Code Playgroud)

要授予用户对当前目录、子目录和文件的权限,您可以执行以下操作:

sudo chmod -R 775 directory_name
Run Code Online (Sandbox Code Playgroud)

或者

sudo chmod -R a+rwx,o-w directory_name
Run Code Online (Sandbox Code Playgroud)

注意

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

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

就这样。

我希望这有帮助