gpt4 book ai didi

linux - 如何从 Chef Recipe 中以非 root 用户身份运行 `gpg`?

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:38 27 4
gpt4 key购买 nike

我需要通过 Chef [客户端,13] 导入,这是 [Ubuntu 14.04] 系统的所有用户中的公钥。

不过,我发现非常奇怪的所有权行为,而且我不知道如何解决它们;以下是不同方法所发生情况的列表(所有片段都是 bash 资源中的 block 。

1.这将执行 gpg 作为 <login> ,但会尝试写入/root/.gnupg:

code "gpg --import << PUBKEY..."
user login

2.这(有时)会创建 /home/<login>/.gnupg与所有者,然后将在其中创建具有 root 所有者的数据文件,然后尝试将其写入 <login> :

code "sudo -iu #{login} gpg --import << PUBKEY..."

3.通过终端手动执行#2可以按预期工作

最佳答案

您需要将 environment 'HOME' => "/home/#{login}" 添加到 bash 资源。 gpg 命令行工具使用此变量,而不是实际检查当前用户的主目录是哪个目录。当您使用 sudo -i 运行时,将为设置此环境变量的用户创建一个登录 shell。

关于linux - 如何从 Chef Recipe 中以非 root 用户身份运行 `gpg`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327645/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com