Моя проблема: у меня есть программа на Python, и пользователь запускает ее, используя sudo. Иногда мне нужно добраться до дома пользователя, и я могу сделать это, только зная его имя:
import pwd
pwd.getpwnam(username)
Итак: как я могу получить имя пользователя, запустившего программу?
Спасибо за совет. Хорошо, я установлю
—
Рубик
euidдля себя SUDO_UID.
sudoлистыHOMEпеременной среды нетронутая (это может быть переопределены в compile- или во время выполнения). Но вы можете или не сможете использовать переменную окружения, в зависимости от того, что вы хотите сделать, если пользователь указывает другое значениеHOME(что, если bob запускаетсяHOME=/home/joe sudo your_script?). Вы, вероятно, должны установить свой euid для вызывающего пользователя (заданного пользователемSUDO_UID), прежде чем делать какой-либо доступ к файловой системе (кроме того, что фактически требует разрешения root в вашем скрипте).