关于路径搜寻的问题!为何不执行目前所在目录下的档案?

来源:互联网 发布:js 函数的argument 编辑:程序博客网 时间:2024/04/26 18:53

以下内容摘在鸟哥的linux私房菜,看了怕忘了,呵呵,在这里记一下……

 

 

关于路径搜寻的问题!为何不执行目前所在目录下的档案?
咦!刚刚不是提到『.』与『..』吗?那么那个『 . 』是干嘛用的?!眼尖的朋友应该已经发现了,就是『我在执行档案的时候,基本上,并不会主动搜寻目前目录下的档案』举个例子来说,我安装的squid 这个执行档在 /usr/local/squid/bin/squid 这个档案,然而我在 /usr/local/squid/bin下达 squid 的时候,系统会告诉你『查不到这个档案!』真是见鬼了!明明有这个档案的呀!这是因为系统预设的PATH (路径)并没有执行目前目录下的设定,也就是『.』这个路径!你可以使用『echo $PATH 』看看,就可以知道为什么了!那么为何不要设定这个路径呢?这是因为『安全』的考虑。由于系统预设是允许任何人在/tmp 底下写入任何档案的,那么万一有居心不良的使用者或者是 Cracker入侵你的计算机,并在你的 /tmp 里头埋了一个小木马,并取名为 ls ,好了,改天你以root 身份登入后,到 /tmp 底下,并执行 ls ,你看会有什么结果?!这个 /tmp/ls由其它身份的人来执行或许没有问题,但是由 root 来执行却可能会导致 Cracker所乐意见到的结果!那晓得为何了吧?!
当然啰!您还是可以选择在 ~/.bashrc 当中设定你的 . 在你的 PATH当中,不过并不这么建议就是了!
原创粉丝点击