我运行的是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
直接注释整行。$PATH
sudo [command]