首页 > 系统服务 > 详细

Linux知识扩展一:执行前为什么加./

时间:2019-03-05 10:36:28      阅读:253      评论:0      收藏:0      [点我收藏+]

转载:https://www.cnblogs.com/fortunel/p/8663669

1  ./表示当前路径,在执行可执行文件时,linux系统会从环境变量PATH中查找该文件的路径,但因为 Linux 的默认搜索目录里没有当前目录,所以如果你在当前目录需要执行程序就要加上路径。

2 为什么windows系统不用加?那是因为windows系统的环境变量中,默认加了当前路径。

3 为什么不将./加到linux的环境变量中?

基于安全考虑,举例理解:

任何用户对 /tmp 都有 w 的权限,若某用户在 /tmp 之下新增 ls 这文件,而文件内容如下:

/usr/sbin/useradd -m adm0
/bin/ls

同时,将 PATH 的路径设为export PATH=./:$PATH,则当 root 进入 /tmp 并执行 ls 时,就会优先执行 /tmp/ls,而非系统默认的 /bin/ls,这样不知不觉中新增了一个用户 adm0,若该文件有问题时,被执行后会发生不可预测的问题,存在隐患。

若非要加,则可以export PATH=$PATH:./,而export PATH=./:$PATH  的安全性要低。 

 

Linux知识扩展一:执行前为什么加./

原文:https://www.cnblogs.com/dLarger/p/10475057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!