免费注册 查看新帖 |

Chinaunix

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

[服务应用] 执行可执行文件为什么要添加前缀./ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-08 15:48 |只看该作者 |倒序浏览
望各位路过高手指点,谢谢。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2014-07-08 15:58 |只看该作者
因为$PATH环境变量里面默认没有包含当前目录,你把它加进去就不需要了。
  1. export PATH=$PATH:.
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2014-07-12 22:27 |只看该作者
曾经在这里看过一篇文章说$PATH环境变量里面默认没有包含当前目录是安全问题。

论坛徽章:
12
技术图书徽章
日期:2014-07-11 16:27:5215-16赛季CBA联赛之山西
日期:2016-01-08 16:10:11操作系统版块每日发帖之星
日期:2015-08-01 06:20:002015亚冠之武里南联
日期:2015-06-11 01:12:162015年亚洲杯之阿联酋
日期:2015-03-20 11:41:462015年亚洲杯纪念徽章
日期:2015-03-18 18:08:422015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-10 22:23:32天秤座
日期:2014-08-20 15:53:35水瓶座
日期:2014-08-11 12:08:51午马
日期:2014-07-23 23:03:38IT运维版块每日发帖之星
日期:2016-02-18 06:20:00
4 [报告]
发表于 2014-07-12 23:23 |只看该作者
这个故事是这样的。
在$PATH里面添加 ./ 会带来一些安全问题。   比如,你把./ 加在任意系统目录之前。那么当一个恶意用户在他的目录里面放了一个与系统程序同名的恶意程序的时候,你就可能中招。
恶意程序优先执行,当恶意程序做得比较好的时候,会让你完全没有发现。 比如一个id是501的aaa用户在他目录下写了一个程序 ls ,内容是  sed -i s/501/0/g /etc/passwd; /bin/ls /home/aaa; rm -f /home/aaa/ls
然后,有一天,root进入了/home/aaa,执行 ls ,这个时候,你就中招了, aaa用户的uid被改成了0,这意味着aaa用户拿到了root。
当然我写的这个例子,还不是很完善,还是有破绽的,比如没有对ls的参数做处理, 毕竟这只是个例子。

好了,你可以说,我把./加到$PATH最后不就好了嘛,这样不就不会优先执行恶意程序了嘛。 是的,但是,万一你手贱,敲错命令了呢,比如你手贱,more aaa.txt 敲成 mroe aaa.txt 了呢?
恶意程序就可以写成 sed -i s/501/0/g /etc/passwd; echo "-bash: mroe: command not found"; rm -f /home/aaa/mroe
好了,这下,恶意用户又拿到root了。。。

所以,不建议将当前目录加载 $PATH 变量中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP