Недавно я начал использовать ConfigParser () для своих сценариев python, чтобы добавить к ним некоторые функции для файлов конфигурации. Я знаю, как им пользоваться, но у меня проблема. Мой сценарий должен запускаться от имени пользователя root с использованием sudo. Файлы конфигурации находятся в ~ / .config / scriptconfig /
, но когда вы запускаете сценарий от имени sudo, он временно меняет пользователя на пользователя root, поэтому он не находит файлы конфигурации. Я хочу получить файл конфигурации эффективного пользователя, чтобы он захватил /home/myuser/.config/scriptconfig/config.cfg
вместо / root / .config / scriptconfig / config.cfg
, которого не существует.
Мне нужно, чтобы сценарий мог работать на разных машинах, а не только на моей. Итак, мне нужно получить домашний каталог эффективного пользователя
Вот пример кода, который я пытаюсь использовать: Я хочу получить файл конфигурации эффективного пользователя, чтобы он захватил /home/myuser/.config/scriptconfig/config.cfg
вместо / root / .config / scriptconfig / config.cfg
, которого не существует.
Мне нужно, чтобы сценарий мог работать на разных машинах, а не только на моей. Итак, мне нужно получить домашний каталог эффективного пользователя
Вот пример кода, который я пытаюсь использовать: Я хочу получить файл конфигурации эффективного пользователя, чтобы он захватил /home/myuser/.config/scriptconfig/config.cfg
вместо / root / .config / scriptconfig / config.cfg
, которого не существует.
Мне нужно, чтобы сценарий мог работать на разных машинах, а не только на моей. Итак, мне нужно получить домашний каталог эффективного пользователя
Вот пример кода, который я пытаюсь использовать:
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
Он должен вывести значение example
из файла конфигурации, но при запуске от имени sudo путь будет /home/root
, поэтому файл конфигурации не найден.