• 基本权限;权限对⽂件or⽬录的意义;特殊权限;文件权限之umask


    ⼀ ⽂件权限管理之基本权限

    基本权限类型

    r:可读=>4

    w:可写=>2

    x:可执⾏=>1

    权限的归属

    属主:u

    属组:g

    其他⼈:o

    设置权限

    修改属主、属组

    [root@aliyun ~]# chown alice.hr file1 # 改属主、属组
    [root@aliyun ~]# chown alice file1 # 只改属主
    [root@aliyun ~]# chown .hr file1 # 只改属组
    [root@aliyun ~]# chown -R /test # 递归修改
    

    修改u、g、o对应的权限

    # 加减法
    chmod u+x,g-w,o+r a.txt
    # 赋值
    chmod a=rwx a.txt
    chmod a=- a.txt
    chmod ug=rw,o=r file1
    # 数字
    chmod 644 file1
    chmod -R 777 xxx/
    

    注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈

    二、权限对⽂件or⽬录的意义

    ⼀:对⽂件夹的操作(不操作⽂件内容),需要当前⽤户具备的权限
     1、对沿途所有⽂件夹有x权限
     2、对⽬标⽂件夹有r或w权限
     r-》可以浏览
     w-》可以创建、删除、移动⼦⽂件和⼦⽬录
     
    ⼆:对⽂件的操作(操作⽂件内容),需要当前⽤户具备的权限
     1、对沿途所有⽂件夹有x权限
     2、对⽬标⽂件有r或w权限
     r-》可以读取⽂件内容
     w-》可以修改⽂件内容
     
    !!!注意!!!
    储备知识:vim修改的原理是将源⽂件删掉,然后再将内容的内容覆盖写⼊了新⽂件,新⽂件名重命名
    为原⽂件名
    例⼦:
    1、当前⽤户对沿途所有⽂件夹都有x权限
    2、并且当前⽤户对⽬标⽂件夹有w权限
    3、但是当前⽤户对⽬标⽂件没有w权限
    此时当前⽤可以vim编辑⽂件内容,并且可以wq!强制保存退出完成⽂件修改,其实是将源⽂件删掉
    了,可以通过查看前后操作的⽂件inode号来确定
    

    三、⽂件权限管理之特殊权限

    3.1 SUID

    普通⽤户不是root也不属于root组,于是它对/etc/shadow⽂件没有任何权限

    [root@aliyun ~]# ll /etc/shadow
    ---------- 1 root root 1109 Aug 11 16:11 /etc/shadow
    

    但是普通⽤户却可以⽤passwd命令修改密码,⽽修改密码都是在修改/etc/shadow⽂件,如何实现 的???

    [root@aliyun ~]# ll `which passwd`
    -rwsr-xr-x 1 root root 27856 Aug 9 2019 /bin/passwd
    

    可以看到⼀个s权限,s权限的特殊之处

    • SUID 权限仅对⼆进制可执⾏⽂件有效

    • 如果执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将具有该⽂件的所有者的权限

    • 本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效

    示例

    [root@localhost ~]# ll `which cat`
    -rwxr-xr-x. 1 root root 54160 10⽉ 31 2018 /usr/bin/cat
    [root@localhost ~]# chmod 4755 `which cat` # 或者 chmod u+s `which cat`
    [root@localhost ~]# ll `which cat`
    -rwsr-xr-x. 1 root root 54160 10⽉ 31 2018 /usr/bin/cat
    [root@localhost ~]# su - egon
    [egon@localhost ~]$ cat /etc/shadow # 可以看到内容
    

    3.2 SGID

    • 当SGID 作⽤于普通⽂件时,和 SUID 类似,在执⾏该⽂件时,⽤户将获得该⽂件所属组的权限。

    • 当 SGID 作⽤于⽬录时,意义就⾮常重⼤了:

      当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件

      如果该⽬录同时⽤ SGID 修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录所属的组。

    [root@localhost ~]# mkdir /test
    [root@localhost ~]# chmod g+s /test/ # 等同于chmod 2755 /test/
    [root@localhost ~]# ll -dl /test/
    drwxr-sr-x 2 root root 6 8⽉ 11 17:06 /test/ [root@localhost ~]# [root@localhost ~]# chown .egon /test/ # 后期任何⼈在该⽬录下创建的⽂件or⽬
    录的属组都是egon
    

    3.3 SBIT

    其实 SBIT 与 SUID 和 SGID 的关系并不⼤。 SBITthe restricted deletion flag or sticky bit 的简 称,有时也称为Sticky。 SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件。⽐较常⻅的例⼦ 就是 /tmp ⽬录:

    [root@localhost ~]# ls -dl /tmp/
    drwxrwxrwt. 13 root root 4096 8⽉ 11 17:09 /tmp/ [root@localhost ~]# chmod o+t /test/ # 或者 chmod 1755 /test
    

    权限信息中最后⼀位 t 表明该⽬录被设置了 SBIT 权限。SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建 新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹。

    四、⽂件权限管理之umask

    新建⽂件、⽬录的默认权限是由umask决定的

    1、uid>199并且属主与数组相等的⽤户下,umask: 0002

    • ⽂件 664

    • ⽬录 775

    2、除1之外的其他⽤户下,⽐如root⽤户,umask: 0022

    • ⽂件 644

    • ⽬录 755

    linux中⽂件默认权限为666、⽬录权限默认为777,在umask的影响下

    ⽂件权限计算⽅法:偶数位直接相减,奇数位相减后加1

    ⽬录权限计算⽅法:直接相减即可

    总结:umask设置的越⼩,权限越⼤,慎⽤

    临时设置umask

    [root@localhost ~]# umask 000 //设置umask权限
    

    永久设置umask

    [root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样
    ......
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
     umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户
    else
     umask 022 //表示uid⼩于199的默认umask值,表示root
    fi
    1234567
    
  • 相关阅读:
    log4j2配置详解
    【数据库性能相关知识汇总】
    【Java并发知识点汇总】
    Spring实践系列-入门篇(一)
    分布式实践之概念解析
    平时工作需要注意总结面试中必然会问到的问题
    DataX支持mysql8.X
    springboot集成shiro
    ELK 6.2.4搭建
    DataX-MysqlWriter 插件文档
  • 原文地址:https://www.cnblogs.com/caodan01/p/14543422.html
Copyright © 2020-2023  润新知