2017-05-12 33 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'的作品! –