따라서 루트로 실행해야 하는 쉘 스크립트가 있지만 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