Переменная Enviromnent для подпроцесса

Я пытаюсь получить доступ к переменной среды от процесса Python. Я экспортировал его как export var=value. Это хорошо работает для команды pyton program.py но не для sudo python program.py. Как я могу удостовериться, что процесс может получить доступ к переменной среды, если это запускается с sudo?

0
задан 28 December 2014 в 10:22

1 ответ

Политика безопасности по умолчанию для sudo обычно препятствует тому, чтобы он наследовал переменные среды. Однако, если конкретная переменная явно не отклонена в Вашем sudoers файл, необходимо быть в состоянии позволить его путем определения -E, опция к sudo, например,

$ VAR="value" python -c 'import os; print os.environ.get("VAR")'
value
$ 
$ VAR="value" sudo python -c 'import os; print os.environ.get("VAR")'
None
$ 
$ VAR="value" sudo -E python -c 'import os; print os.environ.get("VAR")'
value
$ 

Видят man sudo

   -E          The -E (preserve environment) option indicates to the
               security policy that the user wishes to preserve their
               existing environment variables.  The security policy may
               return an error if the -E option is specified and the user
               does not have permission to preserve the environment.
3
ответ дан 6 October 2019 в 05:48

Другие вопросы по тегам:

Похожие вопросы: