web-dev-qa-db-fra.com

Comment puis-je obtenir le nom d'utilisateur à partir d'un script python exécuté avec pkexec?

J'exécute un script python en tant que root avec pkexec et j'utilise working_dir = os.getenv('HOME') pour obtenir le nom d'utilisateur, mais il renvoie toujours root au lieu de test1 qui est l'utilisateur actuel. Comment puis-je obtenir l'utilisateur qui a exécuté pkexec à la place?

J'ai déjà essayé print os.environ["Sudo_USER"] mais cela échoue car il n'est pas exécuté directement avec Sudo. Je suis en confiance maintenant mais me comporte de la même façon en 16.04.

1
answerSeeker

Je l'ai corrigé comme ceci:

import pwd
import os

user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
working_dir = '/home/{}'.format(user)
2
answerSeeker