zoukankan      html  css  js  c++  java
  • 文件权限管理

    文件权限管理之基本权限

    一、基本权限介绍

    1603960956(1)

    1. 基本权限类型

      • r:可读=》4

      • w:可写=》2

      • x:可执行=》1

      • -:没有权限=》0

    2. 权限的归属

      • User(u):属主用户(文件所有者)

      • Group(g):属组用户(包含组成员)

      • 其他人:o 其他用户

    3. 一个用户访问文件流程如下:

      • 判断用户是否为文件的所有者,如果是,按所有者的权限进行访问

      • 判断是否为文件的所有组成员,如果是,就按组的权限去访问

      • 最终用户就是文件的其他的人,按其他人的权限去访问

    二、修改权限

    1. 修改属主、属组

      • chown(设置用户和组)


      mkdir dir               //创建目录
      touch dir/file_test     //创建文件
      mkdir dir/dir_test      //创建目录

      示例1:
      chown bin dir/  //修改所属主为bin
      ll -d dir/      //检查属主
      drwxr-xr-x 2 bin root 4096 7月  22 00:50 dir/


      示例2:
      chown .adm dir/     //修改所属组为adm
      ll -d dir/          //检查属组
      drwxr-xr-x 2 bin adm 4096 7月  22 00:50 dir/


      示例3:
      chown -R root.root dir/ //递归修改目录及目录下的所有文件属主和属组
    2. 修改u、g、o对应的权限

      • chmod(设置权限)

        • +:增加权限

        • -:删除权限

        • =:设置权限

      #u、g、o方式
      chmod   //修改文件目录权限rwx  -R递归修改

      [root@db04 ~]# touch file
      [root@db04 ~]# chmod a=rwx file
      [root@db04 ~]# chmod a+rwx file
      [root@db04 ~]# ll file
      -rwxrwxrwx 1 root root 0 6月  20 23:23 file

      [root@db04 ~]# chmod a-rwx file
      [root@db04 ~]# chmod a=-rwx file
      [root@db04 ~]# ll
      总用量 0
      ---------- 1 root root 0 6月  20 23:23 file

      [root@db04 ~]# chmod u+rw,g+r,o+rx file
      [root@db04 ~]# ll
      总用量 0
      -rwxrwxrwx 1 root root 0 6月  20 23:23 file
      [root@db04 ~]# chmod u=rwx,g=rw,o=rx file
      [root@db04 ~]# ll
      总用量 0
      -rwxrw-r-x 1 root root 0 6月  20 23:23 file

       

    3. 1603966805(1)

      • chown: Linux中用来改变某个文件属主的命令, 如漫画中所示, 将某个"资源"(门)的访问权限给予别人。(卖房)

      • chmod: Linux中用来改变某个文件的访问模式的命令, 如漫画中所示, chmod 777会将大门敞开, 谁都可以进出。(租房)

    三、权限对文件的or 目录的意义

    1. 基础权限设置案例

      权限对文件的影响对目录的影响
      读取权限(r) 具有读取阅读文件内容权限 具有浏览目录及子目录
      写入权限(w) 具有新增、修改文件内容的权限 具有增加和删除目录内文件
      执行权限(x) 具有执行文件的权限 具有访问目录的内容(取决于目录中文件权
      • 文件权限实验案列

        //默认文件匿名用户仅有读权限
        [root@zls ~]# echo "date" >> filename
        [root@zls ~]# ll filename
        -rw-r--r-- 1 root root 5 Jan 24 08:24 filename

        //测试读权限(无法执行或删除)
        [root@zls ~]# su - zls
        [zls@zls ~]$ cat  /root/filename
        date

        //增加x执行权限
        [root@zls ~]# chmod o+x /root/filename
        [root@zls ~]# ll /root/filename
        -rw-r--r-x 1 root root 5 Jan 24 08:24 /root/filename
        //测试执行权限
        [zls@zls ~]$ /root/filename
        Wed Jan 24 08:28:34 EST 2018

        //增加w执行权限
        [root@zls ~]# chmod o+w /root/filename
        [root@zls ~]# ll /root/filename
        -rw-r--rwx 1 root root 5 Jan 24 08:24 /root/filename
        //测试执行权限
        [zls@zls ~]$ vim /root/filename

         

    2. rwx对文件的影响(只对文件内容有影响)

      • r:读取文件的内容

      • w:修改文件内容

      • x:可以把文件当成一个命令/程序运行

    3. 文件权限需要组合:

      • rw: 文件可读可写,不能执行

      • rx: 文件可读,不可写,可以执行

      • rwx:文件可读,可写,也可以执行

    4. 操作文件夹下的子文件与子文件夹(不是文件内容)

      例1:在目录下创建、删除、移动文件需要的权限=对所有文件夹的x权限+对目标文件夹有r权限

      /t1/t2/t3/

      例2:浏览一个目录下的子目录名与子文件名需要的权限=对所有文件夹的x权限+对目标文件夹有r权限

      总结例1与例2:
      只要涉及到操作文件夹下的东西,当前用户
      1、首选需要具备对沿途所有文件夹的x权限
      2、其他需要具备对目标文件夹的r或者w权限
      r代表可以浏览
      w代表可以创建、删除、移动

       

    5. rwx对目录的影响

      • 目录只有r权限: 可以浏览该目录下的子目录名和子文件名字,不能进入目录

        • 1.能使用ls命令浏览目录及子目录, 同时会提示权限拒绝

        • 2.能使用ls -l命令浏览目录及子目录, 会带问号,同时只能看到文件名

        • 总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限

       

      • 写入权限(w)

        • 单纯的w权限没有任何意义。 如果目录只有w权限: 具有增加、删除或修改目录内文件名权限(需要x配合)

        • 注意: 如果目录有w权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关) 不能进入目录、不能复制目录、不能删除目录、不能移动目录

       

      • 执行权限(x)

        • 目录只有x权限

          • 1.只能进入目录

          • 2.其他什么都做不了

            # ps:只要我们要操作目录下的内容,一定要对该目录有x权限
      注意:权限必须组合使用

       

    6. 操作文件夹下的文件内容

      例1:查看某一个文件内容需要具备的权限=对沿途所有文件夹的x权限以及对目标件的r权限
      例2:改某一个文件内容需要具备的权限=对沿途所有文件夹的x权限以及对目标文件的w权限

      操作文件夹的文件内容,当前用户
      1、首选需要具备对沿途所有文件夹的x权限
      2、其他需要具备对目标文件的r或者w权限
      r代表可以读文件内容
      w代表可以改文件内容
    7. 目录权限实验案列:

      实战案例1: 对目录没有w,对文件有rwx 
      [root@zls ~]# mkdir /dirname
      [root@zls ~]# echo "test" >> /dirname/filename
      [root@zls ~]# chmod 777 /dirname/filename
      [root@zls ~]# ll -d /dirname/
      drwxr-xr-x 2 root root 22 Jan 24 08:40 /dirname/
      [root@zls ~]# ll -d /dirname/filename
      -rwxrwxrwx 1 root root 5 Jan 24 08:41 /dirname/filename

      //普通用户验证权限
      [zls@zls ~]$ cat /dirname/filename
      test
      [zls@zls ~]$ rm -f /dirname/filename
      rm: cannot remove /dirname/filename’: Permission denied


      实战案例2: 对目录有w,对文件没有任何权限
      [root@zls ~]# chmod 777 /dirname/
      [root@zls ~]# chmod 000 /dirname/filename
      [root@zls ~]# ll -d /dirname/
      drwxrwxrwx 2 root root 22 Jan 24 08:40 /dirname/
      [root@zls ~]# ll -d /dirname/filename
      ---------- 1 root root 5 Jan 24 08:41 /dirname/filename

      file_zls//普通用户验证权限
      [zls@zls ~]$ cat /dirname/filename
      cat: /dirname/filename: Permission denied
      [zls@zls ~]$ rm -f /dirname/filename
      [zls@zls ~]$ touch /dirname/filename_2
    8. 权限小结:

      • 文件rw权限, 可以查看和编辑文件内容

      • 文件rx权限, 只能查看和执行文件、不能编辑、复制、移动、删除

      • 目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录

    文件管理之特殊权限

    SUID:

    • SUID权限仅对可执行文件有效

    • 如果执行者对该可执行文件具有x的权限,执行者将在该文件的执行过程中拥有该文件属主的权限。

      # 如果一个文件有SUID权限且属主对该文件有x权限,则会在属主对应的x权限显示为小写s。如果没有x权限,则会显示大写S。
      [chirou@duorou ~]$ ll /usr/bin/passwd
      -rwsr-xr-x. 1 root root 27856 4月   1 2020 /usr/bin/passwd

      # passwd命令本质是在修改/etc/shadow文件,但我们查看该文件权限发现是000,也就是说只有root用户能修改该文件内容。通过给passwd命令设置SUID权限能让普通用户执行该命令时拥有root权限,以此达到修改密码的目的。

    SGID:

    • SGID作用于普通文件时:

      • 与SUID类似,在执行该文件时,用户将在文件执行过程中拥有该文件属组的权限。

    • SGID作用于目录时:

      • 当一个用户对目录有写和执行权限,该用户就可以在该目录下新建文件,文件的属组都是该目录的属组。如果创建的是目录,那么此目录也会继承SGID权限。

      [chirou@duorou /home/chirou]# mkdir t1  # 用chirou用户创建目录
      [root@duorou /home/chirou]# chown .panghu t1 # 改变属组方便辨别
      [root@duorou /home/chirou]# chmod g+s t1 # 添加SGID权限
      [root@duorou /home/chirou]# ll
      drwxrwsr-x. 2 chirou panghu 6 10月 29 19:23 t1 # 属组如果有x权限则显示小写s,如果没有x权限则显示大写S。
      [root@duorou /home/chirou]# mkdir t1/t2
      [root@duorou /home/chirou]# ll t1/
      drwxr-sr-x. 2 root panghu 6 10月 29 19:46 t2
      -rw-r--r--. 1 root panghu 0 10月 29 19:25 f1
      # 会发现即便是root在该目录下创建文件,文件的属组依然是该目录的属组,如果创建的是目录,那么此目录也会继承SGID权限。

    SBIT:粘滞位

    SBIT是the restricted deletion flflag or sticky bit的简称,有时也称为sticky。SBIT目前只对目录有效,用来阻止非文件的所有者删除文件。例如系统自带/tmp目录,SBIT会在其他人权限的x位显示t,如果其他人对该文件没有x权限,则会显示大写T。在设置SBIT目录内创建的文件,仅有用户自身和root才能退删除,主要用作共享目录。

    # tmp目录所有用户拥有全部权限,如果没有SBIT那么会造成一个普通用户创建的文件,另一个普通用户也能删除。

    [root@duorou /]# ll -d /tmp
    drwxrwxrwt. 10 root root 4096 10月 29 20:46 /tmp

    三种特殊权限用数字的表示方式为:

    权限对应数字
    SUID 4
    SGID 2
    SBIT 1

    使用chmod命令设置特殊权限:

    # 加减法
    chmod u+s /PATH/File # 设置SUID

    # 赋值法
    chmod u=rwxs,g=xs /PATH/File # 设置SUID和SGID

    # 数字法
    chmod 4644 /PATH/File  # 相当于-rwSr--r--
    chmod 7755 /PATH/File  # 相当于-rwsr-sr-x

    权限管理之umask

    umask是权限掩码的意思,新建文件或目录的默认权限是由umask决定的。

    Linux中文件起始权限为0666、目录权限为0777,通过与umask运算得出最后的权限结果。

    文件的权限计算方法:偶数位直接相减,奇数位相减后加1

    文件起始权限umask值计算方法计算后的文件权限
    0666 0022(每位都是偶数) 直接相减 0644
    0666 0033(有奇数有偶数) 奇数位相减后在其原奇数位加1 0644
    0666 0325(有奇数有偶数) 奇数位相减后在其原奇数位加1 0442

    目录的计算方法:直接相减即可

    目录的起始权限umask值计算方法计算后的文件权限
    0777 0022 相减 0755
    0777 0033 相减 0744
    0777 0325 相减 0452

    能看出umask设置的越小,创建新文件的权限越大,一般而言不要修改umask的值。

    查看umask值:

    # 直接执行umask命令即可查看,root和普通用户的umask值不同。
    # 第一位是特殊权限,后三位对应u、g、o的权限。
    [root@duorou /]# umask
    0022
    [chirou@duorou ~]$ umask
    0002

    临时设置umask:

    # 第一位是特殊权限,后三位对应u、g、o的权限。
    [chirou@duorou ~]$ umask 0000

    永久修改umask:

    修改/etc/profile文件或/etc/bashrc文件。

    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
      umask 002 # 表示UID大于199且属主与属组相同的用户umask值,指普通用户。
    else
      umask 022 # 除上述条件以外的用户,指root。
    fi

    img

     

  • 相关阅读:
    Atitit sumdoc everything index tech and index log 目录 1. 使用的tech 1 1.1. Atitit 日志记录的三个trace跟踪等级文件夹级
    Atitit nlp用到的技术与常见类库 目录 1. 常用的技术 1 1.1. 语言处理基础技术 分词 相似度等 1 1.2. 新闻摘要 2 1.3. 情感倾向分析 2 1.4. 文章标签 2 1.
    Atitit 资源类型的分类法规范MIME类型类型 目录 1.1. 一个MIME类型至少包括两个部分:一个类型(type)和一个子类型(subtype)。 1 1.2. 命名格式MIME类型包括一个
    Atitit 六种知识表示法 目录 1. 知识的静态描述和动态描述 1 1.状态空间表示 以状态和运算符(operator) 1 2.问题归约表示(函数式?? 1 (1)一个初始问题描述; 2 (2)
    微信小程序登录流程总结 目录 1.1. 前端调用wx.login 。。给后端传递一个code 1 1.2. 开发者需要在开发者服务器后台调用 auth.code2Session,使用 code 换取
    Atititi 计算机系 教材 目录 1. 硬件类 2 1.1. 《微机系统与接口技术》 2 1.2. 《计算机组成与系统结构(第2版)》 2 2. Atitit 操作系统原理 操作系统原理(cpu
    Atitit 声音和音乐检索 多媒体信息检索 信息检索 目录 1.1. 14.4.5 音频基础知识 1 1.2. 多媒体信息检索的方法主要有哪些?其原理是什么? 1 1.3. 基于文本的检索和基于
    Atitit 信息检索 v3 t55.docx Atitit 现代信息检索 目录 1.1. 信息检索(索引 索引 结构化文本 1 1.2. Atitit 重要章节 1 1.3. 息检索建模 1 1.
    Atiitt 程序语言vm与rt 虚拟机与运行时 目录 1. 运行时 虚拟机的一种,一般指进程级别的虚拟机。 1 1.1. 线程模型 1 1.2. 堆栈机vs 寄存器 1 1.3. 存储模型 2 1
    Atiitt 图像处理的常见功能业务用途与类库与功能实现 目录 1. 常见业务场景 3 1.1. 缩略图 蒙版遮罩挖空 3 1.2. 区域裁剪,水印,旋转 3 1.3. 判断图像大小分辨率要求
  • 原文地址:https://www.cnblogs.com/taoxiaoxin/p/13899823.html
Copyright © 2011-2022 走看看