您的位置:首页 >> 操作系统 >> Linux >> Linux入门 >> 正文
Linux入门 RSS
 

关于setuid的概念整理

http://www.rdxx.com 08年08月21日 01:32 ChinaUnix 我要投稿

关键词: 概念 , UI
比如你是普通用户testuser
一个文件
-rwsr-sr-x  1 root  root  172185 Aug 18 14:09 nx_shutdown
testuser去调用nx_shutdown
在nx_shutdown运行的过程中,
realuser id是testuser
effective user id是root
系统是根据进程的effective user id去决定进程对资源的访问权限的.
但是,如果在nx_shutdown中再用system(cmd)去调用另外一条命令,
相当于用realuser id去进行调用,也就是相当于testuser在执行cmd命令.
而setuid(uid)的作用就是在进程中将realuser id也设置为uid,比如setuid(0)设置为root.
再执行system(cmd)命令,就相当于root在执行cmd命令.
-----------------------------------------------
除了一般的user id 和group id外,还有两个称之为effective 的id,就是有效id,上面的四个id表示为:uid,gid,euid,egid。内核主要是根据euid和egid来确定进程对资源的访问权限。
  一个进程如果没有SUID或SGID位,则euid=uid
egid=gid,分别是运行这个程序的用户的uid和gid。例如kevin用户的uid和gid分别为204和202,foo用户的uid和gid为
200,201,kevin运行myfile程序形成的进程的euid=uid=204,egid=gid=202,内核根据这些值来判断进程对资源访问
的限制,其实就是kevin用户对资源访问的权限,和foo没关系。
  如果一个程序设置了SUID,则euid和egid变成被运行的程序的所有者的uid和gid,例如kevin用户运行myfile,euid=200,egid=201,uid=204,gid=202,则这个进程具有它的属主foo的资源访问权限。
  SUID的作用就是这样:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。passwd就是一个很鲜明的例子。
                
               

 
 
标签: 概念 , UI 打印本文
 
 
  相关资讯
RSS
 
无相关新闻
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站