问一下linux下的effective user id 和 real user id 有什么区别?
感觉是一样的,什么样的情况下不一样?文件的owner id 是不是等于拥有者的user id?
520874
10 years, 1 month ago
Answers
uid
和
euid
大部分时候是一样的,就是你login所用的uid,但在一个情况下会不一样:
Unix下的可执行文件可以设定
sticky
位,比如用
chmod u+s some_exec
,此时这个
some_exec
是一个“SetUID”程序,无论你的
uid
是什么,当你运行这个程序时,你的
euid
会变成这个
some_exec
的属主的
uid
,一般把它叫
suid
,此时你的这个进程的权限就变成了这个属主的权限,但uid依然保持不变。这个进程可以用
seteuid(2)
在
uid
和
suid
之间切换。
类似的,
gid
也有
rgid
、
sgid
和
egid
,工作方式与
uid
相同。
最常见的“SetUID”程序就是
su
和
sudo
,你可以用它们临时切换权限。
soviet
answered 10 years, 1 month ago