我很难理解PATH
变量是如何受到影响的sudo
。我可以以普通用户身份运行该命令,activator
因为我已将此应用程序所在的路径添加到该用户的.bashrc
文件中。我还可以确保情况确实如此:
user@kubuntu:~$echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/activator-1.3.2
但是,当我尝试运行时sudo activator
,我得到了 sudo:
激活器:未找到命令
我尝试通过添加路径/opt/activator-1.3.2
来解决这个问题/etc/environment
,但我仍然得到相同的“命令未找到”错误,即使sudo echo $PATH
显示该/opt/activator-1.3.2
路径在 PATH 变量中。更让我困惑的是,如果我运行sudo su
,则激活器命令可以正常运行。
答案1
你总是可以这样做:
sudo env "PATH=$PATH" godi_console 作为 Debian 上的安全措施,/etc/sudoers 将 secure_path 选项设置为安全值。