将命令添加到PATH后,为什么sudo找不到命令?


19

我想向PATH添加一些命令,以便可以方便地使用它们,例如:

export $PATH = "$PATH:/opt/storm/bin"

但是有时storm需要root权限,但是当我将其与一起使用时sudo,Ubuntu无法找到该命令。

sudo storm nimbus

使用时如何找到这些命令sudo


该文件夹和文件有什么权限?
Sergiy Kolodyazhnyy 2015年

Answers:


29

您必须将路径添加到sudo路径。

运行命令 sudo visudo

您会看到这样的一行:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

现在,在此处添加命令的路径,这应该可以工作。

例如:

$ sudo storm
sudo: storm: command not found

现在添加上面的路径:

$ sudo visudo 

secure_path="......:/opt/storm/bin"

保存并退出。

现在sudo storm将正常工作。

注意您还应该将该路径添加到中的默认路径/etc/profile


非常感谢这个。它帮助了我,我从中学到了!
darbehdar 2015年

0

我认为您已经在用户级别创建了别名。这就是为什么快捷方式仅在用户级别可用。

您应该将该别名命令行添加到/ root文件夹中的.bashrc文件中,而不要添加到/home/user/.bashrc中(此.bashrc文件属于用户帐户而非root)。

因此,以root用户身份登录时,可以直接在shell中使用alias命令。


1
那又如何/etc/profile呢?我添加export $PATH = "$PATH:/opt/storm/bin"了这个文件,我认为这是全局的,但是我仍然找不到此命令
roger

可能是这个 stackoverflow问题可以解决您的问题:)
匿名鸭嘴兽2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.