linux下文件的读、写、执行权限很直观。

但是,目录的读、写、执行  权限分别代表什么意义呢?

我的总结:

r权限:表示具有读取目录结构列表的权限。

w权限:表示具有修改该目录结构列表的权限,具体指以下权限:

  1. 建立新的文档和目录
  2. 删除已经存在的档案与目录(不论该档案属于谁的)
  3. 将已存在的档案或目录进行更名
  4. 搬移该目录内的档案、目录位置。

  不过需要注意的是具有修改目录结构列表的权限之后,并不一定能修改目录结构因为,想要修改目录结构就需要执行命令,而在目录下执行命令的权限有x控制。

x权限:表示在该目录下执行命令的权限,包含了cd命令
(在配置web服务器的过程中,我遇到过这样的问题。将资源文件放在root用户的主目录下test目录中,并将test目录所有者设置为nginx用户,nginx 的worker进程是以nginx用户的身份在执行,因为/root目录的权限为550,导致nginx用户无法再/root/目录下执行命令,而一直无法获取资源文件)

r权限用例:

ls -l 补充:

w权限用例:

x权限用例:

w+x权限用例:

以下内容摘自《鸟哥linux私房菜》:
r (read contents in directory): 表示具有读取目录结构列表的权限,所以当您具有读取 (r) 一个目录的权限时, 您就可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory): 这个可写入的权限对目录来说,是很了不起的! 因为他表示您将具有异动该目录结构列表的权限,也就是底下这些权限:

    • 建立新的档案与目录;
    • 删除已经存在的档案与目录(不论该档案是属于谁的!)
    • 将已存在的档案或目录进行更名;
    • 搬移该目录内的档案、目录位置。

  所以说,如果您是一般身份使用者,例如鸟哥的账号 dmtsai ,那么在 /home/dmtsai 这个家目录内, 无论是谁 (包括 root) 建立的档案,无论该档案属于谁,无论该档案的属性是什么, dmtsai 这个使用者都『有权力将该档案删除』的喔!
x (access directory): 这个 x 与能否进入该目录有关呢!

[root@linux ~]# cd /tmp
[root@linux tmp]# mkdir testing
[root@linux tmp]# chmod 744 testing
[root@linux tmp]# touch testing/testing
[root@linux tmp]# chmod 600 testing/testing
# 这个 mkdir 是在建立目录用的指令!是 make directory 的缩写。
# 我们用 root 的身份在 /tmp 底下建立一个名为 testing 的目录,
# 并且将该目录的权限变为 744 ,该目录的拥有者为 root 喔!
# 另外, touch 可以用来建立一个没有内容的档案,因此, touch testing/testing
# 可以建立一个空的 /tmp/testing/testing 档案喔!
[root@linux tmp]# ls -al
drwxr--r--   2 root root 4096 Jul 14 01:05 testing
# 仔细看一下,目录的权限是 744 ,且所属群组与使用者均是 root 喔!
# 接下来,我们将 root 的身份切换成为一般身份使用者。
# 鸟哥的系统里面有个 dmtsai 的一般身份使用者账号,所以切换身份成为 dmtsai 
[root@linux tmp]# su dmtsai
# 那个 su 的指令是用来『变换身份』的一个指令,我们未来会详细介绍。
# 注意看,底下这一行中,发现使用者变为 dmtsai 了,而且提示字符变成 $ 了!
# 也就是说,现在操作系统的人变成 dmtsai 了!那么 dmtsai 这个人对于 
# /tmp/testing 是属于 others 的权限,那他可以对 /tmp/testing 干嘛?
[dmtsai@linux tmp]$ ls -l testing   <== 此时身份为 dmtsai
total 0
?---------  ? ? ? ?           ? testing
# 可以查阅里面的信息喔!因为dmtsai 具有 r 的权限,不过,毕竟权限不够,
# 很多资料竟然是问号 (?) 来的~怪怪的紧~
[dmtsai@linux tmp]$ cd testing  <== 此时身份为 dmtsai
bash: cd: testing/: Permission denied
# 发现了吗?即使我们具有 r 的权限,但是没有 x ,所以 
# dmtsai 无法进入 /tmp/testing 喔!
[dmtsai@linux tmp]$ exit
[root@linux tmp]# chown dmtsai testing
# 使用 exit 就可以离开 su 的功能了。我们将这个 testing 目录的拥有者设定为
# dmtsai ,此时 dmtsai 就成为 owner 了,那么这个使用者又能干麻呢?
[root@linux tmp]# su dmtsai
[dmtsai@linux tmp]$ cd testing  <== 此时身份为 dmtsai
[dmtsai@linux testing]$ ls -l  <== 此时身份为 dmtsai
-rw-------  1 root root 0 Jul 14 01:13 testing
# 再切换身份成为 dmtsai ,此时就能够进入 testing 了!查阅一下内容。
# 发现了 testing 这个档案存在喔!权限是只有 root 才能够存取~
# 那我们测试一下能否删除呢?
[dmtsai@linux testing]$ rm testing  <== 此时身份为 dmtsai
rm: remove write-protected regular empty file `testing'? y
# 竟然可以删除!这样理解了吗?
posted on 2017-04-26 21:25  jade640  阅读(950)  评论(0编辑  收藏  举报