/etc/profile.d/somescript.sh의 스크립트 파일에 변수를 설정하고 /etc/sudoers를 수정하고 다음과 같이 sudoers 파일에 "ansible" 사용자를 추가했습니다.
Defaults !env_reset
ansible ALL=(ALL) NOPASSWD: ALL
첫 번째 줄에서 아무것도 출력되지 않는 이유는 무엇입니까? "sudo env"가 모든 환경 변수(일부만)를 표시하지 않는 이유는 무엇입니까?
[ansible@ACEPP-LM-01 ~]$ sudo env | grep ENV
[ansible@ACEPP-LM-01 ~]$ sudo echo $ENV
PP
[ansible@ACEPP-LM-01 ~]$ echo $ENV
PP
[ansible@ACEPP-LM-01 ~]$ env | grep ENV
ENV=PP
나에게 필요한 해결책은 루트 및 사용자 ansible에 대해 ~/.bashrc에 별칭 sudo="sudo -i"를 배치하는 것이었습니다.
답변1
-E
다음 매개변수를 사용해 보세요 sudo
.
-E, --preserve-env
Indicates to the security policy that the user wishes to pre‐
serve their existing environment variables. The security
policy may return an error if the user does not have permis‐
sion to preserve the environment.