[问题] suid 的效果与预期不符

楼主: godspeedlee (妳,我可以)   2013-08-28 14:24:37
环境: ubuntu 11.04
首先我用帐号 styx, babe 各用 touch 产生了一个档案:
(放到 /tmp)
-rw-r
作者: yvb   2013-08-29 22:19:00
都是因为 groups 造成的, 但一般使用者又没权限 setgroups()另外, fdmaury = 6 那边因为你没使用 setgid(), 只用 setuid()
楼主: godspeedlee (妳,我可以)   2013-09-01 04:29:00
我有用 chgrp 指令强迫变更 mjb 的 group,就达到我要的效果了fdmaury = 6,那个暂且不论,一开始euid与egid都已经是styx,为什么还能开启babe的档案(mjb)呢?
作者: yvb   2013-09-01 22:56:00
你打命令 "id" 时会列出三项: id, gid, 和 groups那个 groups 称做 supplementary groups只要存取的档案, gid出现在其中, 就视做以该gid进行存取,因此而可以存取 mjb.
楼主: godspeedlee (妳,我可以)   2013-09-02 01:44:00
uid也有出现,那为什么拿掉mjb group r属性就不能存取了呢?
作者: yvb   2013-09-02 21:02:00
档案的存取权限判断:(1) 档案 uid 等于 euid ==> 取得 user 存取权限(2) 否则, 档案 gid 等于 egid, 或在 groups 中 ==>取得 group 存取权限(3) 否则, 取得 others 存取权限.有 supplementary groups, 但没有 supplementary users.不过, 要达到你要的权限存取, 在 file mode 为 -rw-r---- 时,Linux 还是有别的方式: 要使用 setfsuid() 和 setfsgid().
楼主: godspeedlee (妳,我可以)   2013-09-07 16:10:00
babe只有primary group,没有supplementary group还是说supplementary包含了primary group
作者: yvb   2013-09-09 19:41:00
不清楚是否有文件规范是否 supplementary 包含 primary group,但目前所使用的 login 程式, 都会叫用 initgroup(),将 primary group 设进 supplementary.更正, initgroups(),
楼主: godspeedlee (妳,我可以)   2013-09-12 13:38:00
谢谢,查了一下UNP,的确是如此

Links booklink

Contact Us: admin [ a t ] ucptt.com