Como obter o nome do usuário que iniciou o 'sudo'

9

Meu problema: eu tenho um programa em Python e o usuário o lança usando sudo . Às vezes eu tenho que levar a casa do usuário, e posso fazer isso apenas sabendo seu nome:

import pwd

pwd.getpwnam(username)

Então: como posso obter o nome do usuário que iniciou o programa?

    
por rubik 16.04.2011 / 20:28

1 resposta

18

Quando você dispara algo com sudo , algumas variáveis de ambiente são definidas, especificamente, acho que você está procurando por SUDO_UID . Estes devem ser acessíveis a qualquer programa que esteja sendo executado pelos canais usuais de acesso às variáveis de ambiente.

Você pode ver as outras coisas definidas trapaceando assim de um shell: sudo env | grep SUDO

    
por 16.04.2011 / 20:39