`sudo`로 실행되는 스크립트 내에서 원래 $ USER 변수에 액세스 할 수 있습니까?


19

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

echo $USER

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

sudo ./myscript.sh

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


네, 할 수있는 방법이 있습니다. 그러나 가장 쉬운 방법은 해결 방법입니다. 'sudo script'가 액세스 할 수 있도록 사용자 ID를 '저장'하는 다른 스크립트에서 해당 스크립트를 호출하십시오.
sudodus

답변:


28

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

추가 자료

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.