Meu problema: tenho um programa Python e o usuário o inicia usando sudo. Às vezes, tenho que chegar em casa do usuário e posso fazer isso apenas sabendo o nome:
import pwd
pwd.getpwnam(username)
Então: como posso obter o nome do usuário que iniciou o programa?
Obrigado pelo conselho. Ok, eu porei a minha
—
precisa
euida SUDO_UID.
sudodeixa aHOMEvariável de ambiente intacta (isso pode ser substituído em tempo de compilação ou de execução). Mas você pode ou não conseguir usar a variável de ambiente, dependendo do que deseja que aconteça se o usuário especificar um valor diferente paraHOME(e se bob for executadoHOME=/home/joe sudo your_script?). Você provavelmente deve configurar seu euid para o usuário que está chamando (fornecido porSUDO_UID) antes de fazer qualquer acesso ao sistema de arquivos (além do que realmente requer permissão de root no seu script).