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: 无法打开目录'.': 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章