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

  • 相关阅读:
    javascript循环结构练习
    个人复习JavaScript重点(总结一)
    第十章汽车租凭系统
    员工执行
    第六章预习
    第五章使用Dictionary替换List<t>实现功能
    第5章体检套餐管理系统
    JAVA面试题
    AJAX
    SSM中的登陆验证码
  • 原文地址:https://www.cnblogs.com/dLarger/p/10475057.html
Copyright © 2011-2022 走看看