Mi problema: tengo un programa Python y el usuario lo inicia usando sudo
. A veces tengo que acceder a la casa del usuario, y puedo hacerlo solo sabiendo su nombre:
import pwd
pwd.getpwnam(username)
Entonces: ¿cómo puedo obtener el nombre del usuario que lanzó el programa?
Gracias por el consejo. Ok, voy a configurar mi
—
rubik
euid
a SUDO_UID
.
sudo
deja laHOME
variable de entorno intacta (esto puede anularse en tiempo de compilación o ejecución). Pero puede o no puede usar la variable de entorno, dependiendo de lo que quiera que suceda si el usuario especifica un valor diferente paraHOME
(¿qué pasa si se ejecuta bobHOME=/home/joe sudo your_script
?). Probablemente debería configurar su euid para el usuario llamante (dado porSUDO_UID
) antes de hacer cualquier acceso al sistema de archivos (aparte de lo que realmente requiere permiso de root en su script).