`sudo`로 실행되는 스크립트 내에서 원래 $ USER 변수에 액세스 할 수 있습니까? 이상한 질문입니다. 스크립트는 다음과 같습니다. echo $USER 내가 그것을

이상한 질문입니다. 스크립트는 다음과 같습니다.

echo $USER

내가 그것을 실행하는 데 사용하는 명령은 다음과 같습니다.

sudo ./myscript.sh

지금은 “루트”를 인쇄하지만 jon내 사용자 이름 인 인쇄를 원합니다 . 명령이 아닌 스크립트를 변경하여 그렇게 할 수 있습니까?



답변

SUDO_USER대신 환경 변수를 사용하십시오 USER.

sudoSUDO_USER환경 변수 에서 실행 한 사용자의 이름을 배치합니다 .

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

그래서 당신은 간단하게 교체 할 수 있습니다 $USER$SUDO_USER스크립트의 :

echo $SUDO_USER

추가 자료