免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1438 | 回复: 6
打印 上一主题 下一主题

关于 suid 的疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-25 19:13 |只看该作者 |倒序浏览
本帖最后由 splendid12 于 2012-02-25 19:14 编辑

实验1:

# vim 1
contents:
#!/bin/bash
cat /etc/passwd

# chmod a+x 1
此时没有 s 权限

$ ./1  可以执行

疑惑:
为什么能执行啊?一般用户怎么访问到了 /etc/passwd 呢?


实验2:
好吧,既然 /usr/bin/passwd 是 ELF 可执行文件,我用 C 写一个 可执行文件好了:
# vim 2.c
contents
#include <stdio.h>
int main() {
    FILE *fp = NULL;
    if((fp = fopen("/etc/passwd", "ra")) == 0)
        exit(1);
   
    char str[50] = {0};
    fscanf(fp, "%s\n", str);

    fclose(fp);

    puts(str);

    exit(0);
}

# gcc 2.c
$ ./a.out
竟然能执行?!成功打印了 /etc/passwd 的第一行
我没有设置 SUID 啊!
但是一般用户确实能够从 ./a.out 中获得 /etc/passwd 的结果!

--------------------------------------------------------------------------------------------------------
我对 suid 困惑了。。

论坛徽章:
20
CU大牛徽章
日期:2013-03-13 15:29:072015亚冠之阿尔希拉尔
日期:2015-09-12 09:33:562015年亚冠纪念徽章
日期:2015-09-22 17:12:202015亚冠之本尤德科
日期:2015-10-29 16:18:18神斗士
日期:2015-11-23 13:37:23青铜圣斗士
日期:2015-12-07 10:14:28平安夜徽章
日期:2015-12-26 00:06:3015-16赛季CBA联赛之佛山
日期:2016-01-18 08:59:06shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之同曦
日期:2016-11-03 14:43:552015七夕节徽章
日期:2015-08-21 11:06:17丑牛
日期:2014-12-30 16:06:17
2 [报告]
发表于 2012-02-25 20:28 |只看该作者
[root@sx ~]# ll /etc/passwd
-rw-r--r--. 1 root root 3696  2月 24 20:25 /etc/passwd
[root@sx ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27000  8月 22 2010 /usr/bin/passwd

论坛徽章:
0
3 [报告]
发表于 2012-02-25 21:41 |只看该作者
2L 说:
[root@sx ~]# ll /etc/passwd
-rw-r--r--. 1 root root 3696  2月 24 20:25 /etc/passwd
[root@sx ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27000  8月 22 2010 /usr/bin/passwd

我说:
ll /etc/passwd
-rw-r--r--. 1 root root 3696  2月 24 20:25 /etc/passwd
ll a.out
-rwxr-xr-x 1 root root 12029 ... a.out

对比:
一个是 s 位,一个没有 s 位,但是他们都能做到 访问一个 只有 root 才能访问的文件

结论:
为什么。。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2012-02-25 21:42 |只看该作者
-r-------- 1 root root 1.2K 11-11 22:26 /etc/shadow
密码是存储在shadow里面的,所以需要s权限

论坛徽章:
20
CU大牛徽章
日期:2013-03-13 15:29:072015亚冠之阿尔希拉尔
日期:2015-09-12 09:33:562015年亚冠纪念徽章
日期:2015-09-22 17:12:202015亚冠之本尤德科
日期:2015-10-29 16:18:18神斗士
日期:2015-11-23 13:37:23青铜圣斗士
日期:2015-12-07 10:14:28平安夜徽章
日期:2015-12-26 00:06:3015-16赛季CBA联赛之佛山
日期:2016-01-18 08:59:06shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之同曦
日期:2016-11-03 14:43:552015七夕节徽章
日期:2015-08-21 11:06:17丑牛
日期:2014-12-30 16:06:17
5 [报告]
发表于 2012-02-26 00:17 |只看该作者
回复 3# splendid12


    rw-r--r--  /etc/passwd

    普通用户可以读取此文件

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
6 [报告]
发表于 2012-02-26 07:53 |只看该作者
本帖最后由 chenyx 于 2012-02-26 07:54 编辑

lz理解错误./etc/passwd任何人都可以读,修改密码,需要修改/etc/shadow,shadow的宿主的root,的权限是400,所以/usr/bin/passwd需要设置suid

论坛徽章:
0
7 [报告]
发表于 2012-02-27 00:05 |只看该作者
是我搞错了。。当我把 rw-r--r-- 的 /etc/passwd 换成 r-------- 的 /etc/shadow,a.out 就不能执行了,echo $? 返回 1,文件 1 也返回权限拒绝。

当我把 1 和 a.out 加上 s 位,1 仍然显示 权限拒绝,a.out 成功显示了 shadow 的内容,

这也说明了,shell script 的 s 位是无效的;
然而,至少 a.out 是 elf 的可执行文件,说明 elf 对 S 位有效。


帖子沉了吧。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP