LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: home

添加组ID是什么意思?

[复制链接]
 楼主| 发表于 2004-1-7 17:38:30 | 显示全部楼层
谢谢大家的帮助!!!!!
看了libinary的贴,有不懂的地方??

实际用户ID就是运行程序的用户
有效用户ID决定进程权限
保存的设置-用户-ID保存有效用户ID
比如用户usra运行了一个普通程序,这时候(运行这个程序的进程的)三个ID都是usra
如果某进程运行了一个设置了设置-用户-ID位的程序(chmod u+s)(比如运行的是passwd,此(被运行的)程序的拥有者是root)

(运行这个程序的进程的)实际用户ID就是usra
(运行这个程序的进程的)有效用户ID就是程序的拥有者(root)
(运行这个程序的进程的)保存的设置-用户-ID也是root
一个进程可以用setuid改变(请问这里是说该进程的还是某个文件的??)有效用户ID,作为普通用户可以把(这里的修饰是说一个文件吧??:一个文件的)有效用户ID改为实际用户ID或保存的设置-用户-ID.
只有这样象passwd这样的程序才能运行,因为它要更改/etc/passwd文件,此文件拥有者为root,一般用户无法更改.
不过写这种设置-用户-ID程序要特别小心,避免安全问题.

括号里得内容是我加上去的,不知道描述得对不对。
对不起,到现在我还没有完全弄懂。

我不明白这三个概念是对于一个进程来说的还是被一个进程运行的程序文件来说的?:help :help
发表于 2004-1-8 09:07:52 | 显示全部楼层
好像,shell的set uid和sgid等,没有效果的,不知道记错没有。

setuid程序,运行的时候,是以程序的id名义运行。sgid也一样,是以程序的group id名义运行。

最后一个bit,就是stick bit,好像对程序是没用的了。不过对目录很有用,也提及过了,就是建立文件而不能被其他人删除。

前2个,是对运行的程序来说的。后一个,没有关系。

我的理解。
发表于 2004-1-8 09:10:18 | 显示全部楼层
推荐一本书,希望能找到。
Unix Power Tools。
超级好看的一本书,不过是英文的。:)。
发表于 2004-1-8 14:47:07 | 显示全部楼层
真实ID表示用户在系统上的真实身份,是用户在登陆时从/etc/passwd中读取它们,是你用户名和组的数字化表示。

有效ID主要是用于安全检查,并且是有效进程的唯一标识,一个进行在执行时它所能达到的权限就是有效ID给予的!这里有一个setuid and setgid机制,最常见到就passwd就是这个例子,passwd程序设置了setuid,因为在平常普通用户是不能修改/etc/passwd, 所以现在设置setuid给passwd然后普通用户就可以执行这个程序对/etc/passwd进行修改,你可以查看一下passwd执行程序的属性(whereis passwd; ls -l)。设置了setuid的执行程序可以让一普通用户获得特殊权限执行特殊的程序。如passwd执行程序的有效用户ID是root,但它设置了setuid, 使用普通用户能随时执行它来修改用户的密码。

怎么写着写着就有点乱了!
发表于 2004-1-8 14:54:10 | 显示全部楼层
有效进程就是现在正在运行的进程,可以使用ps -aux查看到它的进程号!
发表于 2004-1-9 21:57:12 | 显示全部楼层
实际用户ID、有效用户ID、保存的设置-用户-ID
这三个都是进程的属性
setuid改变的是进程的uid
 楼主| 发表于 2004-1-10 11:03:32 | 显示全部楼层
现在总算明白了,谢谢你~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表