• linux_文件权限


    权限贯穿linux整个系统

    创建文件或目录,属主和组都是当前用户

    linux权限位?

           9位基础权限位, 3位一组,总共12位权限

           用户对文件权限,相当于你的笔记本

           r      读    4

           w     写    2

           x     执行       1

           -      没有权限 0

    对于普通文件权限总结:

      r   读取或阅读文件的权限

      w  新增、修改文件内容

        没有r权限vi会提示无法编辑,但可强制编辑 和 echo >> 强行追加

      x   表示具有执行文件的权限

         .sh 脚本需要联合 r 权限才能执行,其他 python ,java等语言文件只需要对应的解释器只需要 r 就可以执行

      注意点: 在root用户下,可执行shell只需要 x 权限就可以执行

    删除文件原理:

      

      当 i_link = 0 和 i_count = 0 的时候,就像把文件数据关进了小黑屋,被回收了,就删除了

      删除一个文件,由于文件名存放在上级目录的block中,能不能删除一个文件看要上级目录的w权限,没有的话无法删除

      (删除文件的权限是受父目录的权限控制,和文件权限无关)

      创建文件的默认权限为 644, rw-r--r--,主和组都是创建者

    对于目录权限的总结:

      r   表示具有浏览目录下面文件和子文件的权限,即 ls,dir

      w  表示具有增加、删除或修改目录内文件的权限

      x  表示能够进行目录的权限,没有不能进入该目录,如cd dir,但是没有r无法列表文件及目录,没有w无法新建或删除

      创建文件的默认权限为 755, rwxr-xr-x,主和组都是创建者

    和文件权限相关命令:

      chmod   改变文件会目录权限, 只有所属主和root才能修改

        -R 递归该目录和该目录下所有文件和目录统一权限

      通过数字赋权

    chmod 755 -R /date    #递归让 /date 目录和目录下所有文件和目录获得相同的权限 rwxr-xr-x

      通过符号赋权

             u     所属主

             g     所属组

        o     其他人

             +     添加

        -       取消

        =     等于

    touch modtest    # 创建测试文件
    chmod u+x modtest    # 主添加 x 执行权限
    

    umask  查看或设置默认权限掩码

    umask    # 查看当前权限掩码
    sed -n '65,69p' /etc/bashrc        # 查看默认权限配置
    

      

    如何换算?

           文件的权限从 666 开始,目录权限从777开始

           666               << 文件起始权限

    -      022               << umask值

           644               << 文件权限

      uamsk都为偶数,直接相减,有为计数,计数位加1再相减

      生产场景没有更改的umask需要

    有哪些特殊权限位?

           suid,sgid,粘滞位

    suid总结

      针对命令和二进制程序

      1. 用户对应的前三位权限的x位上如果有s就表示suid权限,当x位上没有小写x执行权限的时候,suid显示的是大S

      2. suid让普通用户可以用root身份执行root才拥有的执行权限命令,suid为某一个命令设置特殊权限(所有人都可使用),和sudo不同

        典型suid passwd,只能通过这个命令来修改密码,而不是直接更改文件

      3. suid是把双刃剑,把无用功能的suid取消掉

    sgid总结

      只对二进制命令程序有效

    • 需要可执行权限x
    • 执行这条命令的任何人,可以获得该命令执行期间所属组的权限

      典型例子: locate

    linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限

           suid        s(有x)    S     4     用户对应的权限位(用户对应的3位置上)

           sgid       s(有x)    S     2     用户组对应的权限位(用户组对应的3位置上)

           sticky     t(有x)     T     1     其他用户对应的权限位,只针对目录

    chmod 4755 command     # 给这个命令suid权限,或 chmod u+s file
    chmod 2755 command     # 给这个命令sgid权限,或 chmod g+s file
    chmod 1755 directory     # 给这个directory粘滞位权限,或 chmod o+s file

           粘滞位,tmp是经典的粘滞位目录,任何用户都可以浏览,修改这个文件下任何内容,但无法删除和移动主是其他用户的文件或目录,常常是木马第一手跳板地址,带来安全问题

      

    如何切换文件的所属主,所属组?

           chown   主和组之间用 : 隔开, 用 . 替代 : 

    chown oldboy test.sh    # 更改test.sh的主
    
    chown :incahome test.sh    # 更改test.sh 的组
    
    chown .incahome test.sh    # 更改test.sh 的组,通过 . 代替 : 
    
    # 注意点:授权 主 和 组 都必须在linux中真实存在的
    

      

    文件权限总结

      1. 总共12位权限位,9位基础权限位,3位特殊权限位,基础3位一组,特殊1位一组

      2. r w x 对应数字分别是 4 2 1 ,特殊权限位 suid sgid sticky 对应数字分别为 4 2 1

      3. 基础权限位在文件上和目录上是不一样

        在文件上,r 表示可以浏览文件内容,w 表示修改文件内容,x 表示这个文件有执行权限,单是单独有x权限,命令解释器无法读取到文件内容,也是无法执行

        在目录上,r 表示可以列表目录下文件名和目录名,w表示可以在该目录下删除和创建文件或目录,x表示能不能进去这个目录

      4. 可以通过 chown 命令更改主 和 组,必须主 和 组linux系统中存在

      5. 删除文件的原理是文件的硬链接数为 0 同时该文件的程序引用数为 0 

  • 相关阅读:
    计算机程序的构造和解释 1.21 寻找素数因子
    迭代法对数计算B的N次方 SICP 计算机程序的构造和解释 1.16
    斐波那契算法的对数解法 计算机程序的构造和解释 习题1.19
    MS SQL SERVER数据库简单回顾
    SICP~计算机程序的构造和解释~ 1.12 c++实现
    论5级流水32bit risc cpu设计
    mdk编译器起到的boot作用详解
    处理器boot的简单概念及误区
    搬砖两年感受
    操作系统方面的两本好书
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7954848.html
Copyright © 2020-2023  润新知