Моя проблема: у меня есть программа на 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 в вашем скрипте).