• SUID权限简介


    SUID简介:
    1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义.
    2.命令执行者要对该程序文件拥有执行(x)权限.
    3.命令执行者在执行该程序时获得该程序文件属主的身份.
    4.SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

    以passwd命令说明

    1 [vampire@LAMP ~]$ whereis passwd
    2 passwd: /usr/bin/passwd /etc/passwd /etc/passwd.OLD /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

    passwd是一个命令,即一个可执行二进制文件,可以使用这个命令来修改用户密码
    由于用户密码是存储在/etc/shadow文件中,但是该文件权限是000,就是不允许任何人修改(root除外),
    使用该命令能修改用户密码,是因为执行该命令的时候我们拥有了一个特殊权限,这个特殊权限让我们可以
    修改/etc/shadow文件

    查看passwd文件的详细信息

    1 [vampire@LAMP ~]$ ll /usr/bin/passwd 
    2 -rwsr-xr-x. 1 root root 25980 Feb 17  2012 /usr/bin/passwd  //可以看到该文件所属主权限标志位上是rws,文件属主是root,其他人具有执行权限(x),就是说当其他人执行该命令是会暂时获得文件属主权限,即root权限,而root是可以操作/etc/shadow文件的

    查看shadow文件得权限

    1 [vampire@LAMP ~]$ ll /etc/shadow
    2 ---------- 1 root root 969 May 16 22:44 /etc/shadow
    3 
    4 [vampire@LAMP ~]$ cat /etc/shadow   
    5 cat: /etc/shadow: Permission denied    //尝试查看shadow文件,没有权限,会发现使用vim,tail,head也一样没有权限

    这样就相当于把shadow文件保护起来了,只有使用执行passwd命令修改密码那一刻才能修改shadow文件

    给文件设定SUID权限

    1 [vampire@LAMP vampire]$ touch test.file     //创建一个新文件
    2 [vampire@LAMP vampire]$ ll
    3 total 0
    4 -rw-rw-r-- 1 vampire vampire 0 May 20 10:34 test.file
    5 [vampire@LAMP vampire]$ chmod u+s test.file    //给文件添加SUID权限
    6 [vampire@LAMP vampire]$ ll
    7 total 0
    8 -rwSrw-r-- 1 vampire vampire 0 May 20 10:34 test.file

    上面给文件添加SUID权限貌似成功了,但是是错误的,正常的拥有SUID权限的文件中属主标志位第三位是s.
    之所以出现S,是因为我们设置的文件之前就没有执行权限,test.file权限为664

    1 [vampire@LAMP vampire]$ chmod 4775 test.file    //给文件赋予可执行权限,再设置SUID权限
    2 [vampire@LAMP vampire]$ ll
    3 total 0
    4 -rwsrwxr-x 1 vampire vampire 0 May 20 10:34 test.file

    取消文件SUID权限

    1 [vampire@LAMP vampire]$ chmod 755 test.file
    2 [vampire@LAMP vampire]$ ll
    3 total 0
    4 -rwxr-xr-x 1 vampire vampire 0 May 20 10:34 test.file

    注:给文件赋予SUID权限之前,该文件一定要有可执行权限(x)
    给文件赋予SUID权限的两种方式
    chmod 4xxx test.file (后面xxx中任何一个有可执行权限即可)

    chmod u+x test.file

  • 相关阅读:
    jQuery.extend
    Topshelf便捷创建Windows服务
    cron表达式
    定时调度框架:Quartz.net
    sqlserver自定义函数
    HTML dom document 对象
    正则表达式之 数据验证 与 文本替换
    JavaScript 之 DOM 与 BOM
    CSS 之pseudo-classes 与pseudo-element的异同
    CSS中的 position与Grid Layout
  • 原文地址:https://www.cnblogs.com/iaknehc/p/6881517.html
Copyright © 2020-2023  润新知