作为目录所有者执行ls命令提示Permission denied求助
问题分析与解决办法
首先,咱们直接揪出问题的核心:你的~/Desktop目录虽然归pi用户所有,但所有者权限缺少了读取(r)权限,这就是ls命令报错的根本原因。
为什么会出现这个问题?
目录的权限和普通文件的权限作用有区别,得先搞清楚这三个权限的实际意义:
r(读取):允许查看目录内的文件/子目录列表,这正是ls命令需要的核心权限w(写入):允许在目录内创建、删除或重命名文件x(执行):允许通过cd命令进入该目录
从你用sudo ls -al输出的信息里能明确看到:
d-wx--x--x 3 pi pi 4096 Jan 12 11:30 .
第一个字符d表示这是目录,后面三位-wx是所有者(pi)的权限——没有r权限,所以你作为目录所有者,没法读取目录内的文件列表,执行ls自然会提示权限拒绝。
快速修复步骤
只需要给目录所有者添加读取权限就行,执行这条命令:
chmod u+r ~/Desktop
命令解释:
u代表当前目录的所有者(也就是pi用户)+r表示给所有者添加读取权限
执行完之后,你可以用这条命令验证权限是否修改成功:
ls -ld ~/Desktop # 预期输出应该是:drwx--x--x 3 pi pi 4096 Jan 12 11:30 /home/pi/Desktop
这时候再执行ls ~/Desktop,就能正常查看目录里的内容了。
内容的提问来源于stack exchange,提问作者Socrates
相关产品推荐
相关产品推荐

