关于ls访问目录或文件时所要具有的权限???

ming470612141 2008-05-08 02:05:45
假如在用户ming的主目录下执行下列操作得到下列结果:
[ming@localhost ming]$ ls -ld business
d--x--x--- 3 ming ming 4096 May 8 01:00 business
[ming@localhost ming]$ ls -l business
ls: business: Permission denied
[ming@localhost ming]$ ls ming.txt
ming.txt
[ming@localhost ming]$ ls -l ming.txt
--wxrwxr-- 2 ming ming 286 May 8 01:29 ming.txt
[ming@localhost ming]$ cat ming.txt
cat: ming.txt: Permission denied

我想问下为什么ls -ld business能行,而ls -l business不?
以及ls -l ming.txt能行,而cat ming.txt不行?
由上面几点我想问下ls访问一个文件或者目录需要什么权限?
用户具有对一个目录的执行权限是怎么回事?
...全文
235 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzy1984 2011-06-13
  • 打赏
  • 举报
回复
非常好,留脚印
jfszd 2008-05-13
  • 打赏
  • 举报
回复
学习了
happy381 2008-05-09
  • 打赏
  • 举报
回复
支持3楼,解释得很清楚.
Soulic 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mooling 的回复:]
进入一个目录需要 x (执行权限)
查看一个目录中的文件,需要r (读权限)
[/Quote]
支持
ming470612141 2008-05-09
  • 打赏
  • 举报
回复
不会吧,8楼解释的是正确的吗?我总觉得有点问题
请知道的说说理由,我好信服
winter_sui 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ming470612141 的回复:]
引用 7 楼 ming470612141 的回复:
应该不需要执行权限吧,不然的话下面的怎么会查询/home/harley目录的信息呢??
用户ming对目录/home/harley没有任何权限包括执行权限
(在用户ming下查询harley用户主目录的信息)
ming@localhost ming]$ ls -ld /home/harley
drwx------ 4 harley harley 4096 May 8 02:16 /home/harley



我现在想问的是:查看一个目录的信息是不是不要任何权限???



[/Quote]

以前光知道权限这回事,这么细节的问题从来没考虑过。

ls -d 是查看这个目录的信息,不属于这个目录的权限所管的,属于它所在的父目录的权限问题。
ls -l 是查看这个目录的内容,你可以把目录看成一个文本文件,相当于要有读权限。
ming470612141 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ming470612141 的回复:]
应该不需要执行权限吧,不然的话下面的怎么会查询/home/harley目录的信息呢??
用户ming对目录/home/harley没有任何权限包括执行权限
(在用户ming下查询harley用户主目录的信息)
ming@localhost ming]$ ls -ld /home/harley
drwx------ 4 harley harley 4096 May 8 02:16 /home/harley
[/Quote]


我现在想问的是:查看一个目录的信息是不是不要任何权限???


ming470612141 2008-05-08
  • 打赏
  • 举报
回复
应该不需要执行权限吧,不然的话下面的怎么会查询/home/harley目录的信息呢??
用户ming对目录/home/harley没有任何权限包括执行权限
(在用户ming下查询harley用户主目录的信息)
ming@localhost ming]$ ls -ld /home/harley
drwx------ 4 harley harley 4096 May 8 02:16 /home/harley
mooling 2008-05-08
  • 打赏
  • 举报
回复
进入一个目录需要 x (执行权限)
查看一个目录中的文件,需要r (读权限)
oogamiyiqilou 2008-05-08
  • 打赏
  • 举报
回复
需要的 目录没有执行权限x 也不能查询
ming470612141 2008-05-08
  • 打赏
  • 举报
回复
那就是说如果是查看一个目录或者文件的信息的话就不要任何权限??
是吗?
wuyuanzhe 2008-05-08
  • 打赏
  • 举报
回复
ls -ld business只是查看business这个目录文件的信息
ls -l business则是要查看business这个目录下文件的信息

d--x--x---表示目录属主、同组用户有执行权限,如果要ls -l business成功,需加上r权限;chmod u+r business

ls -l ming.txt表示查看文件的信息
cat ming.txt表示查看文件的内容

--wxrwxr--表示文件属主没有读权限,所以cat ming.txt无法成功,需加上r权限;chmod u+r ming.txt
ming470612141 2008-05-08
  • 打赏
  • 举报
回复
[ming@localhost ming]$ ls -l ming.txt
--wxrwxr-- 2 ming ming 286 May 8 01:29 ming.txt
[ming@localhost ming]$ cat ming.txt
cat: ming.txt: Permission denied
那上面的怎么解释呢?
明显没有对ming.txt的读取权限,但ls -l ming.txt 却能正确执行
而cat ming.txt 却不能执行
Soulic 2008-05-08
  • 打赏
  • 举报
回复
ls -ld business查看的是business目录的权限,而ls -l business查看的是 business目录下文件及文件夹的权限,在你的系统中 business文件夹对于该文件夹的拥有者和所属组才有这个权限
hzcpig 2008-05-08
  • 打赏
  • 举报
回复
因为ls 的 -d选项比较特殊,它跳过了权限检查

19,620

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧