Linux系统:当前目录与PATH变量,安全问题
当前工作目录:UNIX 和 Linux系统中使用 pwd 命令查看,放在$PWD 变量中的目录。英文名:current directory或者 working directory。
pwd 是 print working directory 的缩写。
在Linux系统中,执行命令时,即使当前工作目录下存放了所输入命令的 可执行文件 或者 可执行脚本,Linux也是找不到这个命令的,因为Linux 搜索命令的时候是根据$PATH变量去寻找的,而当前工作目录” . “ (这里是个点号,表示当前目录)是不列入 $PATH中的。
可是有人就奇怪了,那为什么不把当前目录 “ . ” 放到$PATH中呢,回答曰:安全。
这里的安全,一个是说防止攻击方面的安全,比如你下了一个软件,然后你去执行tar ,gzip,cat 之类的本地软件时。假如你下载的软件恶意的存在了这样的同名可执行文件,并且你下载完后,刚好就在这个目录,那么你执行这样的命令的时候……结果可想而知。
除了它人的原因外,还有自己的原因。比如我们经常会自己用c语言或者其它的语言写一些程序,然后编译、链接为可执行文件。假如我们的可执行文件是做一些不可恢复性的操作,比如删除文件,格式化磁盘之类的。而这些文件名字又恰巧和我们系统$PATH下的某些常用可执行文件名字相同时,那么结果会出乎我们的意料。
也就是说当前目录是总在变化的,一会我们cd 到这儿了,一会又cd 到另一个地方去了。这样的话&#