sudo [duplicate]를 사용하여 현재 사용자를 얻으십시오.

sudo [duplicate]를 사용하여 현재 사용자를 얻으십시오.

따라서 루트로 실행해야 하는 쉘 스크립트가 있지만 sudo를 실행하는 사용자로 runuser를 사용하여 명령을 실행하고 싶다고 가정해 보겠습니다. 저 할 수 있어요 runuser -u tux echo penguin. 그러나 sudo실행 중인 스크립트에 사용자 이름을 하드코딩할 필요가 없도록 루트 셸에서 루트로 실행 중인 사용자의 사용자 이름을 얻으려면 어떻게 해야 할까요? 어떻게 해야 하나요?

답변1

변수 사용 SUDO_USER:

$ env | grep SUDO
$ sudo env | grep SUDO
SUDO_COMMAND=/sbin/env
SUDO_USER=terdon
SUDO_UID=1000
SUDO_GID=1000

$SUDO_USER따라서 변수가 설정되었는지 확인할 수 있습니다 .

if [ -n "$SUDO_USER" ]
then
   # run commands related to the original invoking user
fi

관련 정보