- 论坛徽章:
- 0
|
根据下面的解释:
如果您是 root,那麽这个程式也是以 root 的权限执行;如果您是 user1,那就以 user1 的权限执行。但如果,一个执行档还具有 SUID 属性的话,那这个程式所具有的权限,就不是命令的执行者,而是档案的拥有者:如果一个档案具备 SUID 属性,它的 user 和 group 都是 root,而且 others 也具有 x 权限,那麽,当 user1 执行这个档案的时候,程式所具有的权限就不是 user1 而是 root!同样,如果 SGID 也打开了,那麽这个程式也具有档案之 goup 群组相同的权限。
于是我做了一个实验!
在/home/aa/aa.sh,内容是cat /etc/shadow
权限是:
-rwx------ 1 root root 16 2 24 16:46 aa.sh
当我现在的用户是root时,运行这个script就没问题:显示出/etc/shadow的内容:
[补充一下系统中/etc/shadow的权限是:
-r-------- 1 root root 1702 2 24 11:24 /etc/shadow
也就是说,只能root用户才能看(r)的]
然后:我使用chmod 4700 aa.sh,生成的权限是:
-rws------ 1 root root 16 2 24 16:46 aa.sh
然后切换到普通用户下:
根据以上的文字说明,当我运行aa.sh时,结果应该是可以显示出/etc/shadow的内容了,因为我运行带有suid的可执行文件,就取得了aa.sh属主用户,即root的权限,也就可以看/etc/shadow的内容了,但是I CAN'T READ IT!
WHY?
是不是我理解SUID时有错误? |
|