作为 sudo 运行时找不到命令

作为 sudo 运行时找不到命令

我运行的是centos7。我安装了木偶。如果我puppet以用户身份编写,我会得到正确的输出。如果我写,sudo puppet我就会得到command not found

真正奇怪的是,如果我这样做sudo su -并成为 root,然后写入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

这对我来说完全没有意义......

$PATH变量对于 root 和普通用户是相同的。

答案1

根据这个问题在超级用户站点上,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直接注释整行。$PATHsudo [command]

相关内容