Запуск скрипта Python от имени пользователя root (с sudo) - каково имя эффективного пользователя?

Недавно я начал использовать 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, поэтому файл конфигурации не найден.
14
задан Jmariz 19 April 2011 в 20:42
поделиться