Недавно я начал использовать ConfigParser() для своих сценариев python, чтобы добавить к ним некоторые функции для файлов конфигурации. Я знаю, как использовать его, но у меня проблема. Мой script должен запускаться как пользователь root, используя sudo. Конфигурационные файлы находятся в ~/.config/scriptconfig/
, но при запуске script в качестве sudo он временно изменяет пользователей на root, поэтому он не находит файлы конфигурации. То, что я хочу сделать, это получить конфигурационный файл эффективного пользователя, чтобы он хватал /home/myuser/.config/scriptconfig/config.cfg
вместо /root/.config/scriptconfig/config.cfg
, которого не существует.
Мне нужен script, чтобы работать на разных машинах, а не только на моем. Поэтому мне нужно получить домашний каталог эффективного пользователя
Вот пример кода, который я пытаюсь использовать:
import os, ConfigParser
config = ConfigParser.RawConfigParser()
homepath = os.path.expanduser("~/")
configpath = homepath + ".config/scriptconfig/config.cfg"
config.read(configpath)
get = config.get('Config', 'Example')
print get
It should print the value of example
from the config file but when ran as sudo, the path is /home/root
so it doesn't find the config file.