Почему keyring не извлекает пароль (None) при запуске приложения в виде сервиса (systemd)? При запуске приложения из консоли код:import getpass
import keyring
psw = keyring.get_password(SERVICE_NAME, getpass.getuser())
извлекает пароль и приложение далее корректно работает с ним.
Пытаюсь запустить это же приложение в виде службы с помощью systemd, конфигурация юнита:[Unit]
Description=XXXapp
[Service]
User=developer
Group=developer
ExecStart= /bin/bash -c 'python3 /home/developer/project/XXXapp.py'
[Install]
WantedBy=multi-user.target
приложение извлекает пароль не корректно (получает None).
Запускаю службу под таким же пользователем, как и при запуске из консоли. Пароль в хранилище имеется, это подтверждает успешная работа приложения при запуске из консоли.
Почему такое поведения у модуля keyring? И возможно ли его использовать для таких целей?

21 Авг 2019 в 07:11
177 +1
0
Ответы
1

Проблема может быть связана с тем, что служба systemd запускается в другом контексте, чем обычная консольная среда пользователя. Возможно, при запуске через systemd нет доступа к ключам в keyring из-за ограничений безопасности или из-за отсутствия необходимой среды пользователя.

В данной ситуации рекомендуется использовать другие методы безопасного хранения паролей для запуска службы, например, использование файлов конфигурации или переменных среды. Вы можете передать пароль в приложение через файл конфигурации или переменные среды, чтобы обойти ограничения, связанные с использованием keyring в контексте службы systemd.

Также, убедитесь, что пользователь, от имени которого запускается служба, имеет доступ к хранилищу ключей, в котором хранится пароль. Возможно, в контексте службы systemd нет прав доступа к ключам в keyring.

В целом, лучше избегать использования модуля keyring для случаев запуска приложения в виде службы или демона, так как это может вызвать проблемы с безопасностью и доступом к ключам. Вместо этого, рекомендуется использовать другие методы безопасного хранения паролей для служб и демонов.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 757 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир