저는 centos7을 사용하고 있습니다. 인형을 설치했어요. 사용자로 쓰면 puppet
올바른 출력을 얻습니다. sudo puppet
내가 쓰면 command not found
.
정말 이상한 점은 이 작업을 수행 sudo su -
하고 루트가 된 다음 을 쓰면 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
변수는 루트 사용자와 일반 사용자 모두 동일합니다.
답변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]