首页 > 代码库 > SUID权限简介

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权限简介