Моя проблема: у мене програма Python, і користувач запускає її за допомогою sudo
. Іноді мені доводиться повертатися додому, і я можу це зробити, лише знаючи його ім'я:
import pwd
pwd.getpwnam(username)
Отже: як я можу отримати ім’я користувача, який запустив програму?
Дякую за пораду. Добре, я поставлю мій
—
rubik
euid
To SUDO_UID
.
sudo
залишаєHOME
змінну середовища недоторканою (це може бути замінено під час компіляції чи виконання). Але ви можете або не зможете використовувати змінну оточення, залежно від того, що ви хочете статися, якщо користувач вказав інше значення дляHOME
(що якщо bob працюєHOME=/home/joe sudo your_script
?). Ви, мабуть, повинні встановити свій euid для виклику користувача (даногоSUDO_UID
) перед тим, як зробити доступ до будь-якої файлової системи (крім того, що насправді вимагає дозволу root у вашому сценарії).