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
euid
a SUDO_UID
.
sudo
deixa aHOME
variá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).