Назад | Перейти на главную страницу

Пользовательский ключ GPG не может использоваться SUDO

Я создал сценарий, который запускается двуличие для резервного копирования файлов, которые у меня есть на VPS, и использует ключ GPG, который я создал как пользователь.

Когда я пытаюсь запустить этот сценарий как СУДО, я получаю:

GPGError: GPG Failed, see log below:
===== Begin GnuPG log =====
gpg: C7B2Y6DO: skipped: public key not found
gpg: [stdin]: encryption failed: public key not found ===== End GnuPG log =====

Теперь я понимаю, почему это так (потому что это не ключ SUDO, это ключ пользователя), но прежде чем я пойду и заново сгенерирую ключ для SUDO, можно ли заставить sudo использовать ключ пользователя?

Не очень важно, но сценарий смоделирован на основе комбинации этих трех сайтов: http://www.cenolan.com/2008/12/how-to-incremental-daily-backups-amazon-s3-duplicity/

http://www.randys.org/2007/11/16/how-to-automated-backups-to-amazon-s-s3-with-duplicity/

https://help.ubuntu.com/community/DuplicityBackupHowto

Решение: в сценарий bash добавлено следующее:

HOME=/home/user/

Плавник

Вы пробовали --homedir вариант?

Я считаю, что конфигурация sudo по умолчанию - сохранить $ HOME. Итак, если вы вошли в систему как user1 и использовали sudo scriptname где имя сценария echo $HOME, вы должны ожидать, что в ответ будет "/ home / user1", а не "/ root".

Я предполагаю, что BassKozz не изменил этого. Возможно, он не вошел в систему как желаемый user1, запустив сценарий как sudo. Возможно, он действительно просто запускает скрипт от имени пользователя root, например, через cronjob root. В этом случае его $ HOME никогда бы не был / home / user1, поэтому даже если sudo сохраняет значение $ HOME, это не помогает. В этом случае должны работать любые другие ответы, которые говорят вам, как установить $ HOME на правильное значение или сообщить gpg, где находится ваш домашний адрес.

Если, однако, это правда, поскольку он говорит, что он даже не может запустить свой дублирующий скрипт «как sudo» - то есть, когда вошел в систему как user1 и набрал sudo duplicity_script, то проблема не в неверно установленном $ HOME. Как мы видели, в этом случае $ HOME должно иметь правильное значение. Так что проблема в другом. Я недостаточно слышал и недостаточно хорошо знаю duplicity + gpg, чтобы предположить, что это может быть.

Если вы используете параметр «--preserve-env» для sudo, то GPG в сеансе sudo сможет найти gpg-agent, работающий в собственном сеансе.

Пример:

sudo --preserve-env ВАША_КОМАНДА ...

Вы уверены, что хотите шифровать свои резервные копии с помощью пользовательского gpg-ключа?

если у вас нет отдельной резервной копии вашего gpg-ключа (что, я надеюсь, у вас есть), вы не сможете расшифровать какие-либо резервные копии, если вы потеряли содержимое своего домашнего каталога.