Mon problème: j'ai un programme Python, et l'utilisateur le lance en utilisant sudo
. Parfois, je dois rentrer chez l'utilisateur, et je ne peux le faire qu'en connaissant son nom:
import pwd
pwd.getpwnam(username)
Alors: comment puis-je obtenir le nom de l'utilisateur qui a lancé le programme?
euid
à SUDO_UID
.
sudo
laisse laHOME
variable d'environnement intacte (elle peut être remplacée lors de la compilation ou de l'exécution). Mais vous pouvez ou non être en mesure d'utiliser la variable d'environnement, selon ce que vous voulez faire si l'utilisateur spécifie une valeur différente pourHOME
(que faire si bob s'exécuteHOME=/home/joe sudo your_script
?). Vous devriez probablement définir votre euid sur l'utilisateur appelant (donné parSUDO_UID
) avant de faire un accès au système de fichiers (en dehors de ce qui nécessite réellement l'autorisation root dans votre script).