SystemdDoctor
LoadCredential= [Service]

LoadCredential=: передача секретов службе без переменных окружения

Передаёт службе секрет файлом. systemd читает его от root, кладёт в каталог, доступный только этой службе, и сообщает путь в переменной CREDENTIALS_DIRECTORY.

Что делает

Это заметно надёжнее переменных окружения: те видны в systemctl show, в /proc и в дампах. Каталог учётных данных доступен только процессам службы и исчезает при её остановке.

Есть и зашифрованный вариант: LoadCredentialEncrypted= расшифровывает файл на месте ключом машины. Такой файл можно хранить в системе управления конфигурацией, не опасаясь его прочтения.

Где ставится. В секции [Service]. Значение вида «имя:путь» или просто имя, если файл лежит в стандартном каталоге.

Значения

ЗначениеЧто происходит
db-pass:/etc/myapp/db.passсекрет попадёт в файл db-pass внутри каталога учётных данных.
SetCredential=api-key:значениезначение прямо в unit-файле; для несекретных данных.
LoadCredentialEncrypted=tls:/etc/myapp/tls.credзашифрованные данные, расшифровка ключом машины.

Пример

Пароль базы, который не попадает в окружение.

[Service]
LoadCredential=db-pass:/etc/myapp/db.pass
ExecStart=/usr/local/bin/myapp --db-password-file ${CREDENTIALS_DIRECTORY}/db-pass

Программа должна уметь читать пароль из файла. Если она умеет только переменную, поможет обёртка, которая прочитает файл и вызовет программу.

Типичные ошибки

Отсутствие файла с секретом даёт код 243/CREDENTIALS при запуске.

Зашифрованные данные привязаны к машине: при переносе их нужно перешифровать.

Механизм появился в systemd 247, а ImportCredential= — в 254: на старых системах его нет.

Связанные ошибки

  • status=243/CREDENTIALS в systemdКод 243/CREDENTIALS: не удалось подготовить учётные данные службы из LoadCredential=, SetCredential= или ImportCredential=.
  • status=237/KEYRING в systemdКод 237/KEYRING: не удалось подготовить связку ключей ядра для службы. Обычно ограничение окружения или исчерпание квоты.

Рядом стоящие параметры

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • systemd-creds(1) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026