当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 17:55 
头像

注册: 2008-12-14 18:43
帖子: 644
送出感谢: 0 次
接收感谢: 0 次
我记得多年前曾经看过相关的报道。
可惜现在忘了,哪位达人帮忙解释下?
谢谢了。


_________________
微风成长
http://breezegrowing.com


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 18:05 
头像

注册: 2007-07-30 18:28
帖子: 22033
地址: 空气中
系统: Linux
送出感谢: 17
接收感谢: 68
乱猜个, 没有不行,没有就相当于 子文件夹了,有个 /也不行同理。所以就造了个 ./ 也对应 /.

瞎猜


_________________
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 18:06 
头像

注册: 2007-06-13 15:57
帖子: 12564
地址: 在他乡
送出感谢: 50
接收感谢: 87
PATH里不包含当前目录吧


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 18:07 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
./----明确指定为当前目录下的文件,省得再去查目录。


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 18:07 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
这是由于直接输入可执行文件的文件名的时候,shell会在系统设置的一些默认路径下寻找这个可执行文件,如果没有,就会返回错误信息了,默认路径一般是/usr/bin,如果要执行当前目录下的可执行文件,就必须指定路径,也就是在可执行文件名称前面加上“./”


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 19:53 
头像

注册: 2007-04-11 10:39
帖子: 319
送出感谢: 0 次
接收感谢: 0 次
是没有当前路径,
也不推荐加上去,很容易引发安全问题,
例如当前目录刚好有个同名的木马就惨了..


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 20:06 
头像

注册: 2008-10-08 13:48
帖子: 3476
送出感谢: 0 次
接收感谢: 1
默认只搜PATH里的,你不加路径,PATH里没有,他就认为没有这个文件……


_________________
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 20:39 
头像

注册: 2009-06-10 21:52
帖子: 30
送出感谢: 0 次
接收感谢: 0 次
如果你想执行当前目录的这个文件,但PATH指向的文件夹下有与此文件同名的文件,不加./ 那就执行PATH指向的文件夹下的文件,
所以允许不加./就可执行的话,容易执行非当前目录下的文件,为避免该错误,所以要加./。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 22:10 
头像

注册: 2009-08-19 21:51
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
wangdu2002 写道:
./----明确指定为当前目录下的文件,省得再去查目录。

正解。
. 当前目录
.. 当前目录的上一级目录

操作系统基本都这样默认的


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 22:48 
头像

注册: 2008-12-14 18:43
帖子: 644
送出感谢: 0 次
接收感谢: 0 次
我记得好像是安全问题。
如果不是安全问题的话,完全可以做成Windows命令行的那种形式:不管path里还是当前目录里,只要有该文件就立刻被执行。
6楼好像有点这个意思,但太模糊。
谁能说说具体原因?


_________________
微风成长
http://breezegrowing.com


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 运行当前目录下的可执行文件,为什么要加上“./“在前面?
帖子发表于 : 2009-08-26 23:07 
头像

注册: 2008-12-14 18:43
帖子: 644
送出感谢: 0 次
接收感谢: 0 次
想起来一点了:
我记得那篇文章是这样说的:
如果当前目录下的可执行文件与path默认目录里的文件重名的话,那么系统一定会先执行当前目录里的文件。
如果恰好是某个终端用户上传的一个和系统命令重名的文件,例如:cp,那么恰好管理员用户工作在这个目录下要使用cp命令的话,就会执行那个终端用户上传的cp文件。这样如果这个cp是木马的话,那么系统就会轻而易举的被夺取控制权,所以不安全。
为了解决这个问题,就在当前目录可执行文件名前加"./"用以区分系统命令,也就是默认path里的可执行文件名。

windows为什么没有这个问题呢?我想原因如下:
首先,windows不是一个多用户操作系统。windows不能让两个或两个以上的用户同时进行操作。
特别是GUI方面。所以在用户权限管理方面比较松懈。
其次,windows控制权不需要系统管理员权限来执行木马服务端就可以轻易获取。
再次,我想windows有更多严重的安全问题有待考虑,所以这种安全细节自然还没排上日程。

这是我的一点不成熟的看法,大家怎么看windows命令行设计的这种区别呢?


_________________
微风成长
http://breezegrowing.com


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译