Sudo

以 sudo 執行時找不到命令

  • September 19, 2018

我正在執行centos7。我安裝了木偶。如果我以使用者身份寫作puppet,我會得到正確的輸出。如果我寫sudo puppet我得到command not found.

真正奇怪的是,如果我這樣做sudo su -並成為 root,然後 write puppet,我會得到與普通使用者一起執行它時得到的正常輸出……

[unu@centosmaster puppet]$ puppet
See 'puppet help' for help on available puppet subcommands
[unu@centosmaster puppet]$ sudo puppet
sudo: puppet: command not found
[unu@centosmaster puppet]$ sudo su -
Last login: Wed Sep 19 08:41:20 EDT 2018 on pts/0
[root@centosmaster ~]# puppet
See 'puppet help' for help on available puppet subcommands

對我來說,這完全沒有意義……

對於 root 使用者和普通使用者,該$PATH變數是相同的。

根據超級使用者網站上的這個問題,CentOS 將環境清理為正常的預設值。

這就是為什麼有些命令不能與sudo.

看起來您應該為這些選項簽入(使用 !!/etc/sudoers編輯它):visudo

Defaults env_reset 
Defaults env_keep += "SOME_VARIABLE_NAME" # There should be one or more of these

這一行:

Defaults    secure_path = "some path"

$PATH專門用一個明顯不同於您期望的預先確定的使用者來覆蓋您的使用者。

您可能想根據secure_path自己的需要進行修改,或者如果您覺得標準使用者的$PATH即使與sudo [command].

引用自:https://unix.stackexchange.com/questions/470015