![sudo [duplicate]를 사용하여 현재 사용자를 얻으십시오.](https://linux55.com/image/219149/sudo%20%5Bduplicate%5D%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%98%84%EC%9E%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%96%BB%EC%9C%BC%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
따라서 루트로 실행해야 하는 쉘 스크립트가 있지만 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