Linux系统:当前目录与PATH变量,安全问题

本文探讨了Linux系统中当前目录与PATH变量的关系及其对系统安全的影响。当执行命令时,Linux会根据$PATH变量查找可执行文件而非当前目录,这是出于安全考虑,防止恶意软件替换系统命令。同时,编译器gcc的-L和-I选项也不会默认包含当前目录,以避免意外链接。这种机制鼓励用户明确指定路径,确保操作的可控性和安全性。
摘要由CSDN通过智能技术生成

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 到另一个地方去了。这样的话&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值