Я пишу программу, которая использует свои собственные файлы конфигурации (в / etc / program / и ~ / .config / program /). Иногда проблема в том, что ее нужно запускать как root (поэтому большую часть времени с sudo), и в этом случае ~ / .config / program находится в каталоге root (в моем случае / root). Я хочу, чтобы моя программа использовала файл конфигурации пользователя, даже если он используется с sudo. Моя идея состоит в том, чтобы сначала получить PID родительской программы (в моем случае BASH), который обычно выполняется обычным пользователем, а затем получить имя пользователя, выполняющего родительскую программу. Я легко узнал, как получить PPID, но не нашел, как найти имя пользователя.
Я представляю сценарий вроде:
parents_name=$(echo $PPID | *command_which_gives_the_name_from_a_PID*)
. /home/$parents_name/.config/program # includes the user's config file
Надеюсь, у кого-то есть тент!