`sudo`를 시작한 사용자의 이름을 얻는 방법


12

내 문제 : Python 프로그램이 있고 사용자가를 사용하여 시작합니다 sudo. 때로는 사용자의 집을 구해야하며 이름 만 알면됩니다.

import pwd

pwd.getpwnam(username)

그렇다면 프로그램을 시작한 사용자의 이름을 어떻게 얻을 수 있습니까?


1
대부분의 구성 sudo에서 HOME환경 변수는 그대로 유지합니다 (컴파일 또는 런타임에 재정의 될 수 있음). 그러나 사용자가 다른 값을 지정 HOME하면 (bob이 실행되면 HOME=/home/joe sudo your_script어떻게됩니까?)에 따라 환경 변수를 사용하거나 사용하지 못할 수 있습니다 . 당신은 아마해야 호출 사용자로 EUID 설정 (주어진을 SUDO_UID(실제로 스크립트에서 루트 권한이 필요 어떤 떨어져에서) 어떤 파일 시스템 액세스를하기 전에).
Gilles 'SO- 악마 그만해'

조언 감사합니다. 좋아, 내 설정합니다 euid에를 SUDO_UID.
rubik

답변:


22

sudo두 개의 환경 변수 가 있는 것을 발사하면 , 특히 나는 당신이 찾고 있다고 생각합니다 SUDO_UID. 이들은 환경 변수에 액세스하는 일반적인 채널을 통해 실행되는 모든 프로그램에서 액세스 할 수 있어야합니다.

쉘에서 다음과 같이 부정 행위함으로써 다른 것들을 볼 수 있습니다. sudo env | grep SUDO


1
와우 +1! 대단히 감사합니다! 바로 내가 찾던 것이 었습니다. 나는 내가 사용하는 것이라고 생각 SUDO_UID하고 SUDO_USER. 다시 감사합니다.
rubik

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