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

ls: cannot open directory '.': Permission denied

我的应用程序 运行正在 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

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

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

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

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

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

sudo bash
chmod 775 .

这主要是因为当前用户没有足够的权限 read/write/execute 那个目录的内容。

修复方法如下:

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

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表示其他
  • +表示加
  • -表示移除。

所以就是递归的给每个人增加读、写、执行权限,然后去掉其他人的写权限

就这些了。

希望对您有所帮助