2017-05-12 28 views
0

例如

~/Desktop/scripts$PATH

cat ~/Desktop/scripts/hi

#!/bin/bash 
echo hi 

我已经试过(当前目录为〜):

hi # CLI said "hi" 
sudo -E hi # sudo: hi: command not found 
se hi # sudo: hi: command not found # alias se="sudo -E " 

如何sudo的脚本?

+1

第一修复她爆炸,应该是'#!/ bin中/不带空格 – Inian

+1

你可以尝试为'须藤-E庆典〜/ hi' – Inian

+0

@Inian bash'我有固定的她 - 爆炸和'sudo -E bash〜/ hi'报告'没有这样的文件或目录' –

回答

1

尝试以下操作:

sudo PATH="${PATH}" bash -c "hi" 

有关说明,请参见man sudoers的(5):

默认情况下,env_reset选项启用。这会导致命令在新的最小环境中执行。在AIX(以及没有PAM的Linux系统)上,环境使用/ etc/environment文件的内容进行初始化。除了env_check和env_keep选项允许的调用过程的变量以外,新环境还包含TERM,PATH,HOME,MAIL,SHELL,LOGNAME,USER,USERNAME和SUDO_ *变量。这实际上是环境变量的白名单。

+0

Thx。但是'sudo:hi:command not found':( –

+0

将〜/桌面/脚本更改为完整路径,例如/ home/user/Desktop/scripts –

+0

您的'PATH'点是正确的''sudo PATH =“$ {PATH }“bash hi'的作品! –