2014-02-28 40 views
0

沒有發現每當我嘗試運行任何現有的命令/ sbin目錄/用sudouser如「命令使用ifconfig」命令,我得到的錯誤說sudo的命令:ifconfig:命令未找到。須藤:(什麼):在RHEL 5.8

我添加的路徑sbin目錄到PATH

export PATH=$PATH:/sbin 

它工作正常,但是當我改變終端或重啓,復位PATH。我如何永久添加PATH變量的路徑?

而且我失去了別的東西嗎?

+0

您使用的是哪個外殼? –

+0

@jaypal:它不利於 – Pradeep

+0

@leeduhem:bash shell的 – Pradeep

回答

0

如果您正在使用bash,你可以追加

export PATH=$PATH:/sbin 

~/.bashrc/sbin添加到您的$PATH永久。


sudo -l可用於列出調用用戶允許的命令,這也說明了安全路徑。

sudo -l給出了這樣的我的Fedora 19系統上:

$ sudo -l 
    ... 
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin 

sudo printenv PATH給出了相同的結果:

$ sudo printenv PATH 
/sbin:/bin:/usr/sbin:/usr/bin 

secure_path設置在/etc/sudoers

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin 

sudo版本:

$ sudo -V 
Sudo version 1.8.6p7 
Sudoers policy plugin version 1.8.6p7 
Sudoers file grammar version 42 
Sudoers I/O plugin version 1.8.6p7 
+0

我試着追加〜/。bashrc,但我得到了一個權限被拒絕的錯誤 – Pradeep

+0

你的命令是什麼,什麼是確切的錯誤信息? –

+0

我試圖查看根目錄「cat〜/ .bashrc」,當我得到權限被拒絕的錯誤。 如何將/ sbin永久添加到PATH for sudoomrs 「sudo printenv」 - PATH中沒有/ sbin – Pradeep

2

命令sudo下執行不繼承大部分的環境,尤其是你的$PATH

要看看有什麼繼承,嘗試運行

sudo printenv 

如果要執行的命令,這不是在sudo的默認$PATH,你必須在命令來更新$PATH本身或指定命令的完整路徑名。

您也可以使用-E通過sudo傳播您當前的環境,但這並非總是允許的。

另請參閱/etc/sudoers,可用於配置sudoman sudo的行爲。

sudo -l也將顯示有用信息,包括你允許執行和對環境的一些(但不是全部)信息哪些命令。

+1

'sudo -l'可以用來列出調用用戶允許的命令。 –