Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424444
  • 博文数量: 131
  • 博客积分: 1990
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-24 12:15
文章分类
文章存档

2011年(4)

2010年(19)

2009年(108)

我的朋友

分类:

2009-10-10 18:07:41

1.什么是uid和gid
每个用户有一个uid和gid, 这个记录在/etc/passwd, /etc/group里面

每个文件有一个uid, 就是拥有这个文件的用户的uid。

每个用户运行一个程序时是以自己的uid作为身份的,如果这个程序被
设置了stick位,则这个程序以程序拥有者的uid作为身份,程序运行
时的这个身份(uid)就是euid, 表示这个程序以那个用户的身份运行(这样
就拥有那个用户的权限,比如读取属于他的文件)。

所以程序运行时的身份euid一般情况下都是运行这个程序的人的uid,有时
会是这个程序拥有者的uid。

以passwd程序为例,这个程序要写/etc/passwd, /etc/shadow,一般用户
对这些文件是没有写权限的,用户A运行了passwd,这个passwd进程的
euid就是uidA,当要写这两个文件时,passwd调用了setuid(seteuid?),
这样这个passwd进程的euid就是uidRoot了,passwd就可以写那两个文件了,
写完之后euid再切换成uidA.
这个过程就实现了对/etc/passwd, /etc/shadow的受控访问:普通用户只允许
按照passwd程序定义好的方式修改这两个文件。
阅读(721) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~