LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 959|回复: 8

高手请进!!

[复制链接]
发表于 2004-5-17 08:19:30 | 显示全部楼层 |阅读模式
谁能给介绍一下UNIX下三种特殊文件的权限的设置,(设置用户ID,设置组ID,粘连位).
发表于 2004-5-18 18:22:49 | 显示全部楼层
我不是高手,但不自觉进来了
发表于 2004-5-18 18:30:27 | 显示全部楼层
最初由 congli 发表
我不是高手,但不自觉进来了

我以为自己事高手,所以进来了:p
结果发现自己原来不是高手
发表于 2004-5-18 21:34:29 | 显示全部楼层
我想看看高手,所以也进来了。。人呢。。。
发表于 2004-5-18 21:40:13 | 显示全部楼层
请参考<<FreeBSD HandBook>>
发表于 2004-5-18 22:34:16 | 显示全部楼层
详细的解释看APUE吧, 不过这些都是最基础的知识, 不需要高手来的
发表于 2004-5-18 22:43:08 | 显示全部楼层
这都需要看APUE?不要唬大家了,还是看看handbook或者王波的大全就可以了
发表于 2004-5-18 22:57:44 | 显示全部楼层
路过,上面好多高手哦!!!!
发表于 2004-5-19 17:32:53 | 显示全部楼层
process进程一般有
real user ID, real group ID
effective user ID, effective group ID, supplementary group IDs
saved set-user-ID, saved set-group-ID,
---------
process 就像人
real 就像你的出生地, 你出生在中国,那么化成灰也是华人;
effective 就像护照, 你是华人, 但有希腊护照,你就可以在希腊做很多原来不能做的事情;
saved 与 setuid setguid 调用时设置 effective 有关,可以暂时不理他.



文件 file 一般有一个stat结构, 保存着他的信息, 这里我们关注的是其中的:
st_uid: 文件所有者;
st_gid: 文件组所有者;
st_mode: 文件各种允许位,拥有者,同组人,其他人的读、写、执行权力.
-----------
文件就像资源, 像中国的大兴安岭, 希腊的帕农神殿.
st_uid 就像他们的直接所有管理者;
st_gid 就像同一地方的人;
st_mode 规定什么人有什么权力, 管理者可以对他们增减一些东西, 游客就只能参观而不能放火或拆房子. set-user-ID, set-group-ID,
粘贴位也都在这里。

A.
一般 real 与 effective 相同, 但如果一个可执行文件的 st_mode 中设置了 set-user-ID,也就是设置了设置用户位,那么当你执行他的时候,你的effective user ID 就边成该文件的所有者st_uid了.(当然前提是你有权利运行这个程序,有st_mode里面的其他部分控制)
这种可执行程序就像是护照发放机构,只要你能进去(执行他),你就可以获得相应的护照.
一个例子是 passwd 命令, 我们用他来改我们的密码, 但 /etc/passwd /etc/shadow 只有 root 能写, 而改密码一定写/etc/passwd 或/etc/shadow, 那么我们应该不可能修改密码啊. 就是因为 passwd 的st_uid 是 root, 而且他的 st_mode 里面设置了 set-user-ID 位.而他可以被任何用户执行.这样我们执行passwd 时, 我们的real user ID 不变(你还是华人), 而effective user ID变成root(你有了希腊护照), 而一个文件被访问时,他检测:
1。 effective user ID = root, 老大来了,随你怎么蹂躏吧;
2。 effective user ID = ut_uid : 自己人来了,照章办事,让你进来,但还是要守自己人的规矩,st_mode 里面owner读、写、执行的规定;
3。 effective group ID = st_gid 或者 supplementary group IDs 中的一个 = st_gid:
    同组的朋友来了, 可以进来, 但要守朋友的规矩,即st_mode 里面group读、写、执行的规定;
4.  不满足上面的条件,不熟悉的人来了,看看外来人管理章程,st_mode 里面other的读、写、执行的规定,如果相应的操作允许,那就让他来吧;
5.  否则, 那里来的, 一边去.
所以由于effective user ID 与 /etc/passwd , /etc/shadow 的 st_uid 相同, 而root 又对他们有写的权利,自然我们也就可以写这两个文件了,所以我们可以用passwd改写我们的密码了,是不是很方便,但也有一些安全隐患.

B.set-group-ID 和上面set-user-ID情况查不多.

C.粘贴位, 即 sticky bit, N久以前,如果一个可执行文件设置了他, 那么他第一次执行时,他的进程空间被复制到交换分区,这样再次执行的时候就比从硬盘上读出快很多。不过现在一般不这么用了.
SVR4 和 4.3以上的BSD允许对目录设置sticky bit, 这样该目录里的一个文件只能被对该目录有写权利并是该文件的所有者或是该目录的所有
者或是老大root才能删除或改名.比如像 /tmp 目录。

就是说他主要用来让文件放到缓冲区加快访问速度和对目录访问进行限制。我对他了解也不多,了解的朋友再说明一下,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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