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

Posted

技术标签:

【中文标题】ls: 无法打开目录\'.\': 权限被拒绝【英文标题】: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

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

【问题讨论】:

【参考方案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 表示其他人 + 表示添加 - 表示删除。

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

就是这样。

我希望这会有所帮助

【讨论】:

以上是关于ls: 无法打开目录'.': 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

焦油提取命令,无法打开:权限被拒绝

无法打开流或文件:无法打开流:权限被拒绝[重复]

Laravel 4:无法打开流:权限被拒绝

无法打开输出文件,权限被拒绝

AWS 中的 Laravel - 无法打开流:权限被拒绝

“无法打开流或文件“laravel.log”:无法打开流:权限被拒绝”