zoukankan      html  css  js  c++  java
  • 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
    # 竟然可以删除!这样理解了吗?
  • 相关阅读:
    草稿~!
    Jmeter使用:JSON返回数据处理
    Jmeter使用:操作MySQL
    jmeter+ant+jenkins 搭建接口自动化测试环境
    【未完成】Jmeter接口自动化测试:参数化设置
    RDLC报表系列(六) 多图表-折线图和柱状图
    RDLC报表系列(五) 简单的图表-柱状图
    RDLC报表系列(四) 矩阵
    流程图里的形状符号的含义及意义(转 )
    Login failed for user 'NT AUTHORITYNETWORK SERVICE'的解决方法
  • 原文地址:https://www.cnblogs.com/jade640/p/6771077.html
Copyright © 2011-2022 走看看