Получение пароля прокси с помощью secret-tool
Держите пароль прокси вне файла запуска оболочки, учитывая сеанс пользователя и открытое значение, нужное клиенту.
В интерактивном сеансе рабочего стола с Secret Service храните секрет прокси отдельно от его идентифицирующих атрибутов:
secret-tool store --label='Work web proxy' purpose web-proxy host proxy.example
Передавайте секрет отдельно; не помещайте его в метку и атрибуты. Для получения используйте secret-tool lookup purpose web-proxy host proxy.example. Эта команда выводит подходящий секрет в стандартный вывод, поэтому передайте вывод в поддерживаемый интерфейс учётных данных нужного клиента, а не в общий диагностический журнал.
Для поиска нужны сеанс D-Bus соответствующего пользователя и доступный Secret Service. Коллекцию может потребоваться разблокировать. Задание cron не воспроизводит разблокированное состояние рабочего стола автоматически, а поиск от root не выбирает связку ключей другого пользователя.
Обрабатывайте сбой поиска в хранилище отдельно от отклонённой аутентификации прокси. Молчаливая отправка пустого пароля и повторные попытки скрывают, какая операция не удалась.
Предпочитайте отдельные поля учётных данных клиента, если они поддерживаются. Если учётные данные должны быть в URL прокси, кодируйте имя пользователя и пароль как компоненты URI; экранирование в оболочке не выполняет URL-кодирование.
Связка ключей избавляет от буквального секрета в .profile. Полученное значение по-прежнему находится в памяти, а его экспорт открывает его порождаемым дочерним процессам. Защищённое хранилище не превращает это окружение выполнения в хранилище секретов.