美文网首页
day11-特殊权限

day11-特殊权限

作者: 不懂helloword | 来源:发表于2019-08-08 16:56 被阅读0次

    1.suid

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

    列:
    用户在改密码是使用passwd改密码,指向/etc/shadow来修改密码,而shadow是一个没有权限的文件,为什么所有用户都能修改修改shadow里的密码?


    shadow权限属性
    *切换普通用户修改密码时,passwd
    [oldboy@localhost ~]$ passwd
    Changing password for user oldboy.
    Changing password for oldboy.
    (current) UNIX password: 
    
    *新建一个终端查看进程中passwd是什么在运行
    [root@localhost ~]# ps aux | grep "passwd"
    root       7502  0.0  0.4 170712  1992 pts/0    S+   10:30   0:00 passwd
    root       7556  0.0  0.2 112708   960 pts/1    S+   10:31   0:00 grep --color passwd
    

    为什么是root用户在运行passwd,而不是oldboy?因为passwd有特殊权限

    [root@localhost ~]# ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
    *-rwsr-xr-x ----> rwx变成了rws,s就是赋予了特殊权限
    

    PS:set uid简称suid,当我们赋予suid特殊权限,能让所有用户在运行赋予特殊权限后以属主的权限去运行。
    suid == 4000
    命令表达式:

    chmod u+s /usr/bin/passwd
    chmod 4755 /uer/bin/passwd
    chmod u-s #去掉权限
    

    suid优点:可以让普通用户执行无法执行的命令----方便
    suid缺点:如果rm为suid无论谁执行该命令,都能删除系统的任何资源


    2.sgid(set gid)特殊权限(RHCE考试)

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

    [root@oldboyedu ~]# groupadd devops
    [root@oldboyedu ~]# useradd zhangsan -G devops
    [root@oldboyedu ~]# useradd lisi -G devops
    [root@oldboyedu ~]# mkdir /opt/share
    [root@oldboyedu ~]# chmod 2777 share/
    [root@oldboyedu ~]# chown .devops share/
    

    使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

    *测试不同的用户在该目录下创建文件,检查属主和属组
    [root@localhost /opt/share]# ll
    total 0
    -rw-r--r--. 1 root     devops 0 Aug  8 11:27 t1
    -rw-r--r--. 1 oldboy   devops 0 Aug  8 11:28 t2
    -rw-rw-r--. 1 zhangsan devops 0 Aug  8 11:30 t3
    

    3.sbit

    如果一个目录设定了粘滞位,那么谁都可以在该目录下创建文件
    删除文件只能是谁创建的谁删除,除此以外 root 和/tmp/的所属主都能删除该目录下的额内容.

    #设定粘滞位 1000 
    chmod o+t /tmp 
    chmod 1777 /tmp
    
    粘滞位使用场景

    5.特殊属性 chattr lsattr

    • -a 只能追加,无其他操作
    • -i 锁定文件,不能删除,不能追加,不能移动

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

    [root@localhost /opt/share]# chattr +i /etc/passwd #使文件不得变动文件或目录
    [root@localhost /opt/share]# lsattr /etc/passwd #检查文件属性
    ----i----------- /etc/passwd
    [root@localhost ~]# useradd zj
    useradd: cannot open /etc/passwd
    

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

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

    6.umask 默认权限

    1. umask是用来控制默认创建文件或目录的权限
    2. umask设定为022,表示要减去的权限
      目录: 777 -022 =755
      文件: 666 -022 =644
    3. umask 设定为奇数 偶数 对文件和目录有什么影响?
      文件: 如果umask出现了奇数, 要在奇数位+1
      目录: 对目录毫无影响
    4. 设定umask
      umask number 临时 (当前bash窗口有效,会随着bash的关闭一
      起结束)
      vim /etc/profile /etc/login.defs # 如果修改则都为永久.
    5. 一般情况下不对umask调整,默认就是安全的权限.默认为:
      目录: 755
      文件: 644

    总结

    1. 特殊权限 suid sgid sbit
      suid:让其他用使用程序时通过该文件属主来操作该文件的内容等
      sgid:设置目录sgid特殊权限,让其目录下创建的文件都有相同组,方便文件共享
      sbit:目录设定了粘滞位,那么谁都可以在该目录下创建文件

    2. 特殊属性 chattr lsattr -a(/var/log/*.log) -i (/etc/passwd)
      chattr:-a:追加文件 -i:锁定文件
      lsattr:查看文件属性

    3. umask 默认权限( 表示要减去的权限 目录:777 -umask 文件:666 - umask)。
      当我们想改变创建文件和目录时的默认访问权限,则可以通过umask命令来实现。

    相关文章

      网友评论

          本文标题:day11-特殊权限

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