Використання systemd для запуску gpg-agent?


3

Я прочитав трохи про systemd, але все ще не можу зрозуміти, як використовувати його для автоматичного запуску gpg-agentпід час входу в систему. Я розумію, що я використовую systemctl --user, але конструюючи це gpg-agent.service, мене завалило. Будь-які і всі покажчики є вірними.

Відповіді:


1

gpg-agentКоманда запускає демон, але програми , які використовують його очікують деякі змінні оточення ( GPG_AGENT_INFOі GPG_TTY) повинні бути встановлені так , що вони знають , як спілкуватися з агентом. Ви повинні якимось чином поширювати їх зі службового сценарію на ваші оболонки. Сторінка gpg-agentMAN містить фрагмент, який запускає демон і записує фрагмент коду оболонки у файл у домі користувача

gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"

Ви можете помістити цей рядок у скрипт оболонки і викликати її з вашого службового файлу

[Service]
Type=forking
ExecStart=script-file.sh
<...>

.gpg-agent-infoФайл повинен бути отриманий з будь-якої оболонки. Сторінка MAN рекомендує

if [ -f "${HOME}/.gpg-agent-info" ]; then
  . "${HOME}/.gpg-agent-info"
  export GPG_AGENT_INFO
fi

GPG_TTY=$(tty)
export GPG_TTY

у .profileфайлі, щоб зробити це. Відомості про те, як писати файли служб systemd, можна знайти на сторінці MAND.


Так, багато чого ясно з прочитання сторінки man, але чи не існує певного способу почати gpg-agentроботу, щоб її змінні середовища входили до сеансу входу?
Магнус

@Magnus Я думаю , що ви можете робити те , що ви хочете, пошуку .gpg-агенти інформації від $ HOME / .xprofile Я використовую Баш в якості мого командного процесора сеансу (і інтерактивної оболонки), таким чином , я джерело моєї .bashrc як з моєї .profile і Файли .xprofile. Потім у моєму .bashrc у мене є поділ: все, що повинно перейти в середовище сесії, відбувається спочатку, потім я додаю цей тест "[[$ -! = * I *]] && return" (без лапок), який виявляє, чи є неінтерактивна оболонка і виходи, а всі налаштування, які повинні перейти в інтерактивне середовище, йдуть в кінці файлу.
palopezv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.