Sudo
以 sudo 執行時找不到命令
我正在執行centos7。我安裝了木偶。如果我以使用者身份寫作
puppet
,我會得到正確的輸出。如果我寫sudo puppet
我得到command not found
.真正奇怪的是,如果我這樣做
sudo su -
並成為 root,然後 writepuppet
,我會得到與普通使用者一起執行它時得到的正常輸出……[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]
.