美文网首页LinuxLinux学习之路
day12-Linux学习 特殊权限

day12-Linux学习 特殊权限

作者: 云运维之道 | 来源:发表于2019-08-08 17:14 被阅读11次

    一、特殊权限概述

    Linux 系统文件除了9位基本权限,还有额外3位特殊权限,分别是

    SUID(set uid), -rwsr-xr-x
    SGID(set gid), -rw-r-sr-x
    SBIT(sticky bit), -rw-r-xr-t

    这3位特殊权限不建议使用(除系统默认的特殊权限可以使用以外),除非有特殊需求

    二、特殊权限SUID

    1、SUID(SetUID)

    1)说明

    [root@oldboy ~]# ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
    

    该命令拥有特殊权限 SUID,也就是在属主的权限位的执行权限上是 s。
    当一个具有执行权限的文件设置 SUID 权限后,用户在执行这个文件时将以文件所有者的身份来执行。
    命令执行完,身份消失。

    特殊权限 特殊权限位小写 特殊权限位大写 权限值
    s (suid) 小写s (有suid执行权限) 大写S (无suid执行权限) 4(4000)

    2)SUID授权方法

    权限字符s(S),用户位置上的x位上设置

    # chmod 4755 passwd     添加SUID
    # chmod  u+s  passwd    添加SUID
    
    # chmod  u-s  passwd    去掉SUID
    

    3)作用

    1.让普通用户对可执行的二进制文件,临时拥有二进制文件的所属主权限。(优点:方便)
    2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是大S。
    3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。

    2、案例理解

    图1.png

    总结:

    进程能够以何种身份 --> 去查看一个文件 --> 取决于运行这个进程的用户 --> 对这个文件有没有权限
    

    三、特殊权限SGID

    1、GUID(SetGID)

    1)说明

    一般设置在目录上,用户在设置了SGID的目录下新建文件或子目录时,新建的文件或子目录自动继承父目录的属组,普通用户执行时,是以管理员的身份去执行的。

    特殊权限 特殊权限位小写 特殊权限位大写 权限值
    s (sgid) 小写s (有sgid执行权限) 大写S (无sgid执行权限) 2(2000)

    2)SGID授权方法

    权限字符s(S),属组位置上的x位上设置

    # chmod 2755  directory     添加SGID
    # chmod  g+s  directory     添加SGID
    

    3)作用

    1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
    2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
    3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

    2、案例理解

    将目录设置为sgid后,如果在该目录下创建文件,都将与该目录的所属组保持一致。

    #1.建立测试目录
    [root@oldboy ~]# cd /tmp
    [root@oldboy /tmp]# mkdir aa
    
    #2.给测试目录赋予SetGID权限,检查SetGID是否生效(目录aa属于root组)
    [root@oldboy /tmp]# chmod g+s aa/ && ll -d aa/
    drwxr-sr-x 2 root root 6 Aug  8 16:01 aa/
    
    #3.给测试目录赋予777权限,让普通用户可以写
    [root@oldboy /tmp]# chmod 777 aa/
    
    #4.切换成普通用户aa,并进入该目录
    [root@oldboy /tmp]# su - aa
    [aa@oldboy ~]$ cd /tmp/aa
    
    #5.普通用户创建测试文件,检查文件的信息(目录aa_test属于root组)
    [aa@oldboy /tmp/aa]$ touch aa_test
    [aa@oldboy /tmp/aa]$ ll
    -rw-rw-r-- 1 aa root 0 Aug  8 16:04 aa_test
    

    四、特殊权限SBIT

    1、SBIT(Sticky BIT)

    1)说明

    [root@oldboy ~]# ll -d /tmp/
    drwxrwxrwt. 17 root root 4096 Aug  8 16:24 /tmp/
    

    Sticky(SI TI KI)粘滞位目前只对目录有效
    普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录中拥有写入权限。
    如果没有粘滞位,那么普通用户拥有 w 权限,就可以删除此目录下的所有文件,包括其他用户建立的文件。
    但是一旦被赋予了粘滞位,除了 root 可以删除所有文件,普通用户就算拥有 w 权限,也只能删除自己建立文件,而不能删除其他用户建立的文件。除此以外 root 和/tmp/的所属主都能删除该目录下的额内容。

    特殊权限 特殊权限位小写 特殊权限位大写 权限值
    t(sticky bit) 小写t (有sticky bit执行权限) 大写T (无sticky bit执行权限) 1

    2)SBIT授权方法

    权限字符t(T),其他用户位置上的x位上设置

    #chmod o+t /tmp      添加SBIT
    #chmod 1777 /tmp     添加SBIT
    

    3)作用

    1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
    2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T。
    3.一个目录即使它的权限为“777”如果是设置了粘滞位,除了目录的属主和“root”用户有权限删除,除此之外其他用户都不允许删除该目录。

    2、案例

    图2.png 图3.png

    五、权限属性chattr

    1、概念

    chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。

    chatrr 命令格式:

    ​ [root@oldboy ~]# chattr [+-=] [选项] 文件或目录名

    选项:

    ​ 增加权限 -减少权限 =等于某个权限

    ​ a:让文件或目录仅可追加内容

    ​ i:不得任意更动文件或目录

    1、希望任何人都不能创建用户,应该给/etc/passwd添加什么特殊属性?

    [root@oldboy ~]# chattr +i /etc/passwd
    [root@oldboy ~]# lsattr /etc/passwd
    -–-–i-–-–-–-–--— /etc/passwd
    # 不得任意更动文件或目录
    
    [root@oldboy ~]# chattr -i /etc/passwd
    [root@oldboy ~]# lsattr /etc/passwd
    -–-–-–-–-–-–-–-– /etc/passwd
    

    2、日志文件,希望能往里面追加内容,但不允许删除,应该添加什么特殊属性?

    [root@oldboy ~]# chattr +a /var/log/secure
    [root@oldboy ~]# lsattr /var/log/secure
    -----a---------- /var/log/secure 
    

    六、进程掩码umask

    1.umask是什么?

    umask是用来控制默认创建文件或目录的权限
    系统默认权限:目录: 755 文件: 644

    2.umask是如何改变创建新文件的权限

    umask默认设定为022,表示要减去的权限
    目录 (正常情况下目录的权限为777) 777 -022 =755
    文件 (正常情况下目录的权限为666) 666 -022 =644

    3、umask 设定为奇数 偶数 对文件和目录有什么影响?

    文件: 如果umask出现了奇数, 要在奇数位+1
    目录: 对目录毫无影响

    4、设定umask

    umask number 临时 (当前bash窗口有效,会随着bash的关闭一起结束)
    vim /etc/profile /etc/login.defs # 如果修改则都为永久。

    5、注意

    umask 知道就行, 不要调整,默认就是安全的权限。

    相关文章

      网友评论

        本文标题:day12-Linux学习 特殊权限

        本文链接:https://www.haomeiwen.com/subject/mxxfjctx.html