RUID EUID SUID


    实际用户ID(UID)也称RUID:用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录Linux系统后就唯一确定了她的RUID--------------通俗点讲就是你是谁

       有效用户ID(EUID):当你使用su命令,切换了用户。那你的有效用户id就为你su之后的这个用户id-----------------通俗点讲就是你的有效身份是谁 
 EUID用于系统决定用户对资源的访问权限。决定了一个进程是否能干某些事,决定了进程访问某些资源的权限。通常情况下EUID和RUID是相同的。
        设置用户ID(SUID): 用于对外权限的开放,UID 和EUID是用一个用户绑定,而suid它是跟文件绑定而不是跟用户绑定。

SUID属性只能用在可执行文件上,也就是任意人运行该可执行程序,都会以该文件拥有着权限运行。如果文件拥有者权限的第三位是一个小写的"s"就表明该执行文件拥有suid属性。切记一定要给可执行文件设置suid属性,如果文件没有可执行属性,设置的suid属性无效,文件拥有者权限的第三位会出现大写的“S".

说到这个SUID属性,让我想到了粘滞位属性: 粘滞位只能给目录设置
一旦设置了粘滞位的目录里面的所有文件,是谁创建的只能由谁删(root当然也可以删)也就是说由那个用户设置的就由哪个用户删除。
我们都知道linux系统的密码都存在在/etc/shadow这个文件里面。

[daidai@localhost ~]$ ls -l /etc/shadow

----------. 1 root root 823 May  2 00:44 /etc/shadow
可以看出/etc/shadow是属于root用户,属于root组的文件。其他用户对此文件没有任何权限。
可是现实中,我们一个普通用户是可以修改自己密码的。
[daidai@localhost ~]$ passwd
Changing password for user daidai.
Changing password for daidai.
(current) UNIX password:
这时为什莫呢?普通用户修改密码,这份密码必然会保存到/etc/passwd中,可是普通用户都没有对该文件的任何权限?普通用户是如何修改密码的。
那我们接着来看下这个passwd
[daidai@localhost ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd
我们发现passwd这个文件用户执行权限位被设置为了s,这个s位就是我们上面所说的suid位,也就是设置了s位,执行该文件的所有用户执行此文件时拥有此文件拥有者的权限。因此普通用户就可以修改自己的密码。
那么接下来我们把s位去掉看还能不能修改密码。我们现在切到root用户先把s位去掉。
]# chmod u-s /usr/bin/passwd
[root@localhost daidai]# ls -l /usr/bin/passwd
-rwxr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd
接着又切到daidai普通用户,看能不能修改密码。答案是不可以。
[daidai@localhost ~]$ passwd
Changing password for user daidai.
Changing password for daidai.
(current) UNIX password:
passwd: Authentication token manipulation error

经过上面的讲解,大家有没有对SUID,RUID,EUID有些许的了解。

 
 





猜你喜欢

转载自blog.csdn.net/baidu_37964044/article/details/80270006