当前位置: 技术问答>linux和unix
关于ls访问目录或文件时所要具有的权限???
来源: 互联网 发布时间:2016-05-11
本文导语: 假如在用户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 [m...
假如在用户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访问一个文件或者目录需要什么权限?
用户具有对一个目录的执行权限是怎么回事?
[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访问一个文件或者目录需要什么权限?
用户具有对一个目录的执行权限是怎么回事?
|
ls -ld business查看的是business目录的权限,而ls -l business查看的是 business目录下文件及文件夹的权限,在你的系统中 business文件夹对于该文件夹的拥有者和所属组才有这个权限
|
以前光知道权限这回事,这么细节的问题从来没考虑过。
ls -d 是查看这个目录的信息,不属于这个目录的权限所管的,属于它所在的父目录的权限问题。
ls -l 是查看这个目录的内容,你可以把目录看成一个文本文件,相当于要有读权限。
|
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
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
|
需要的 目录没有执行权限x 也不能查询
|
进入一个目录需要 x (执行权限)
查看一个目录中的文件,需要r (读权限)
查看一个目录中的文件,需要r (读权限)
|
因为ls 的 -d选项比较特殊,它跳过了权限检查
|
支持
|
支持3楼,解释得很清楚.
|
学习了