zoukankan      html  css  js  c++  java
  • Linux知识扩展一:执行前为什么加./

    转载: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  的安全性要低。 

  • 相关阅读:
    @bzoj
    @hdu
    @noi.ac
    @noi.ac
    @noi.ac
    jsp include page指令标记
    javascript 对象(DOM)document window history
    HTML 标准属性 和 事件属性
    html 特殊字符 fmt table A
    mysql 启动 导入sql文件
  • 原文地址:https://www.cnblogs.com/dLarger/p/10475057.html
Copyright © 2011-2022 走看看