用户 GPG 密钥无法被 SUDO 使用

用户 GPG 密钥无法被 SUDO 使用

我创建了一个运行的脚本表里不一备份我在 VPS 上的文件,并使用我作为用户生成的 GPG 密钥。

当我尝试以 SUDO 身份运行此脚本时,我得到:

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

答案1

解决方案:在 bash 脚本中添加以下内容:

HOME=/home/user/

答案2

您尝试过这个--homedir选项吗?

答案3

我相信 sudo 的默认配置是保留 $HOME。因此,如果您以 user1 身份登录,并使用sudo scriptnamescriptname 执行的位置echo $HOME,则应该会看到回显“/home/user1”,而不是“/root”。

我假设 BassKozz 没有改变这一点。也许他没有以他想要的用户 1 身份登录,而是以 sudo 身份运行脚本。也许他实际上只是以 root 身份运行脚本,例如通过 root 的 cronjob。在这种情况下,他的 $HOME 从一开始就不会是 /home/user1,所以即使 sudo 保留了 $HOME 的值也无济于事。在这种情况下,任何其他告诉您如何将 $HOME 设置为正确值或告知 gpg 您的主目录在哪里的答案都应该有效。

但是,如果他说他真的无法“以 sudo 身份”运行 duplicity 脚本(即以 user1 身份登录并输入 )sudo duplicity_script,那么问题就不在于错误设置的 $HOME。正如我们所见,在这种情况下,$HOME 应该具有正确的值。所以问题出在其他方面。我听到的还不够多,对 duplicity+gpg 也不太了解,所以无法推测可能是什么问题。

答案4

您确定首先要使用用户 gpg 密钥加密您的备份吗?

除非您对 gpg 密钥进行了单独的备份(我希望您有),否则如果您丢失了主目录的内容,您将无法解密任何备份。

相关内容