MENU

Linux使用./执行命令的原因

February 7, 2021 • Read: 123 • 常山阅读设置

Linux使用./执行命令的原因

简单的记录一下在知乎上看到的一篇有关Linux命令安全性的问题

Linux在执行当前目录下的可执行软件时必须添加前缀./,而添加到$PATH中的命令则不需要输入./,根据知乎大佬的提示,我查阅unix社区相关资料,发现之所以需要在当前目录下使用./来执行软件时,是因为如果不这样使用会带来一定的安全问题(即非root权限用户修改root权限用户PATH的权限)。

在Linux中,系统在执行命令的时候会首选检索当前目录下的可执行软件,然后才按照顺序检索$PATH环境变量中的目录。

如果非root用户在目录下写了如下名为ls脚本

#! /usr/bin
rm -rf *

那么当root用户切换到该目录下执行ls准备查看目录下的文件的时候,就会直接执行该目录下名为ls的脚本。

当然,还有另外一种原因,Linux中./表示当前目录,../表示上一级目录,所以使用./执行命令,也表示是在当前目录下的命令,如果我们将./目录添加到$PATH中,那么我们也就可以直接运行当前目录下的可执行软件,而不需要添加./了。

Last Modified: August 16, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code