답변:
sudo
두 개의 환경 변수 가 있는 것을 발사하면 , 특히 나는 당신이 찾고 있다고 생각합니다 SUDO_UID
. 이들은 환경 변수에 액세스하는 일반적인 채널을 통해 실행되는 모든 프로그램에서 액세스 할 수 있어야합니다.
쉘에서 다음과 같이 부정 행위함으로써 다른 것들을 볼 수 있습니다. sudo env | grep SUDO
SUDO_UID
하고 SUDO_USER
. 다시 감사합니다.
SUDO_USER
내가 찾던 것입니다.
sudo
에서HOME
환경 변수는 그대로 유지합니다 (컴파일 또는 런타임에 재정의 될 수 있음). 그러나 사용자가 다른 값을 지정HOME
하면 (bob이 실행되면HOME=/home/joe sudo your_script
어떻게됩니까?)에 따라 환경 변수를 사용하거나 사용하지 못할 수 있습니다 . 당신은 아마해야 호출 사용자로 EUID 설정 (주어진을SUDO_UID
(실제로 스크립트에서 루트 권한이 필요 어떤 떨어져에서) 어떤 파일 시스템 액세스를하기 전에).