木偶为什么要尝试使用另一个用户的凭据对用户的文件进行更改而失败?

时间:2019-01-02 14:29:30

标签: ubuntu puppet

在某些服务器上,人偶试图使用错误的用户凭据对用户的文件和目录进行更改,但失败。

我在8台服务器上使用puppet,一些在Ubuntu OS上使用(puppet 6.0.4在18.04上,puppet 5.5.8在16.04上),而一些在Debian 9(puppet 5.5.8)上。在三台Ubuntu服务器(不是全部)上,一台使用puppet 5.5.8,两台使用6.04,puppet做了一些奇怪的事情:

运行puppet agent --test --debug时,输出看起来像这样(当然是假名):

Notice: 
/Stage[main]/User/Ssh_authorized_key[user1@computer1]/ensure: 
removed
Info: Computing checksum on file /home/user1/.ssh/authorized_keys
Debug: Creating /home/user1/.ssh as user2
Error: /Stage[main]/User/Ssh_authorized_key[user1@computer1]: Could 
not evaluate: Permission denied @ dir_s_mkdir - /home/user1/.ssh
Notice: 
/Stage[main]/User/Ssh_authorized_key[user3@computer3]/ensure: 
removed
Debug: Creating /home/user1/.ssh as user2
Error: /Stage[main]/User/Ssh_authorized_key[user3@computer3]: Could 
not evaluate: Permission denied @ dir_s_mkdir - /home/user1/.ssh

请注意,木偶代理以root身份运行,而user1,user2和user3是普通用户。

Puppet是根据当前文档从官方puppetlabs存储库安装的。

我注意到的事情是,在人偶清单中,用户是由用户标识的,而组仅由其用户名引用(在所有服务器上都是相同的用户名(在所有服务器上,user1为user1)),而uid和gid则不同由puppet管理,并且确实有所不同(user1在一个服务器上具有uid 1001,在另一台服务器上具有uid 1003)。据我所知,如果未在清单中设置,木偶也不应使用uid。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我的上述评论是正确的,我将其包含在其他存在相同问题的地方: 似乎与puppet doumentation here purge_ssh_keys相反(如果在“ user1”下设置)不仅

  

“ ......在用户家中的.ssh / authorized_keys文件中查找密钥   目录。清除所有未作为ssh_authorized_key管理的密钥   资源。”

并删除所有未设置为“ user1”的“ ssh_authorized_key”的密钥。

但是还尝试删除任何其他用户的“ authorized_keys”文件中为“ user1”设置为“ ssh_authorized_key”的密钥。