sudo로 실행할 때 명령을 찾을 수 없습니다

sudo로 실행할 때 명령을 찾을 수 없습니다

저는 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와 함께 사용하더라도 표준 사용자라고 생각되면 전체 줄을 직접 주석 처리할 수 있습니다.$PATHsudo [command]

관련 정보