• linux下目录的读、写、执行权限辨析


    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
    # 竟然可以删除!这样理解了吗?
  • 相关阅读:
    【试水CAS-4.0.3】第07节_CASclient配置单点登录
    30分钟,让你彻底明白Promise原理
    【你离硅谷只差一步】网易中国创业家大赛项目火热征集中
    21分钟学会写编译器
    Android 模拟器下载、编译及调试
    GitLab 自动触发 Jenkins 构建
    微服务监控探索
    感觉要火!妹子实地采访网易猪厂程序员七夕怎么过
    延迟任务调度系统—技术选型与设计(下篇)
    使用QUIC
  • 原文地址:https://www.cnblogs.com/jade640/p/6771077.html
Copyright © 2020-2023  润新知