zoukankan      html  css  js  c++  java
  • 权限管理:文件特殊权限—SetUID

    SetUID的功能

    只有可以执行的二进制程序才能设定SUID权限
    命令执行者要对该程序拥有x(执行)权限
    命令执行者在执行程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
    SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

    passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码(执行passwd实际写的是shadow文件,root用户可以对shadow文件读、写、执行)

    [root@localhost chapter3]# ll /usr/bin/passwd 
    -rwsr-xr-x. 1 root root 27856 Aug  9  2019 /usr/bin/passwd
    [root@localhost chapter3]# ll /etc/shadow
    ----------. 1 root root 660 Apr 25 15:36 /etc/shadow
    

    cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

    [root@localhost chapter3]# ll /bin/cat
    -rwxr-xr-x. 1 root root 54080 Aug 20  2019 /bin/cat
    

    设定SetUID的方法

    chmod 4755 文件名   # 4代表SUID
    chmod u+s 文件名
    

    给abc文件设置SetUID

    [root@localhost chapter3]# touch abc
    [root@localhost chapter3]# ll abc
    -rw-r--r--. 1 root root 0 Jun  7 11:01 abc
    [root@localhost chapter3]# chmod 4755 abc 
    [root@localhost chapter3]# ll abc
    -rwsr-xr-x. 1 root root 0 Jun  7 11:01 abc
    

    如果文件没有可执行权限(644),那么显示的是S,S表示没有作用

    [root@localhost chapter3]# touch ABC
    [root@localhost chapter3]# ll ABC
    -rw-r--r--. 1 root root 0 Jun  7 11:05 ABC
    [root@localhost chapter3]# chmod u+s ABC 
    [root@localhost chapter3]# ll ABC 
    -rwSr--r--. 1 root root 0 Jun  7 11:05 ABC
    

    取消SetUID的方法

    chmod 755 文件名
    chmod u-s 文件名
    

    给abc文件取消SetUID

    [root@localhost chapter3]# chmod 755 abc 
    [root@localhost chapter3]# ll abc 
    -rwxr-xr-x. 1 root root 0 Jun  7 11:01 abc
    

    危险的SetUID

    关键目录应严格控制写权限,比如"/"、"/usr"等
    用户的密码设置要严格遵守密码三原则
    对系统中默认应该具有SetUID权限的文件做一列表,定时检查有没有这之外的文件被设置了SetUID权限
    只要给vim赋予了SetUID权限,普通用户就可以使用vim修改所有系统文件,不光是用户密码文件,还有系统的启动文件,自动挂载文件等,所以这是很危险的

  • 相关阅读:
    是否可以从一个静态(static)方法内部发出对非静态 (non-static)方法的调用?
    是否可以继承 String 类?
    如何实现字符串的反转及替换?
    String s = new String(“xyz”);创建了几个字符串对象?
    Serial 与 Parallel GC 之间的不同之处?
    SVG是什么?
    阐述静态变量和实例变量的区别?
    Java 中 ++ 操作符是线程安全的吗?
    什么是 REST / RESTful 以及它的用途是什么?
    WebSQL是HTML 5规范的一部分吗?
  • 原文地址:https://www.cnblogs.com/my_captain/p/13059928.html
Copyright © 2011-2022 走看看