如何从主厨食谱中以非root用户的身份运行`gpg`?
问题描述:
我需要通过Chef [client,13]导入一个[Ubuntu 14.04]系统所有用户的公钥。如何从主厨食谱中以非root用户的身份运行`gpg`?
虽然我发现很奇怪的所有权行为,但我无法弄清楚如何解决它们;下面是一个什么样不同的方法(所有的片段是一个bash
resource`内发生块列表
1,本会执行GPG为<login>
,但会尝试写入/root/.gnupg:
code "gpg --import << PUBKEY..."
user login
2,本会(有时)创建/home/<login>/.gnupg
与业主,然后将里面创建根所有者的数据文件,然后将尝试写信给他们为<login>
:
code "sudo -iu #{login} gpg --import << PUBKEY..."
3.Executi ng#2手动通过终端按预期工作
答
您需要将environment 'HOME' => "/home/#{login}"
添加到bash
资源。 gpg
命令行工具使用此变量而不是实际检查当前用户的homedir是什么目录。当您使用sudo -i
运行时,会为设置此环境变量的用户创建登录shell。
Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww
我明白了;那么肯定,这个问题应该被转移到devops.stackexchange.com。在stackoverflow.com上有一个长期的厨师问题,这是误导性的(例如,参见'Related'链接)。 – Marcus
我投票结束这个问题作为题外话题,因为它是题外话题。 – Marcus