2016-03-17 89 views
0

我正在使用'用戶'資源創建unix帳戶,然後設置默認密碼。爲此我寫了以下清單。強制用戶在下次使用木偶登錄時更改密碼

node 'node2.example.com','node3.example.com'{ 
user { 
     'askar': 
     ensure => 'present', 
     managehome => 'true', 
     comment => 'man Home', 
     home => '/home/askar', 
     shell => '/bin/bash', 
     expiry => '2016-03-22', 
     password => '$1$cs1j/t.D$4Q2Ocr0pulyNTUx/', 
     password_min_age => '30', 
     password_max_age => '60', 
     } 
    } 

它工作正常,但我希望用戶應強制在下次登錄時更改其密碼。爲此,我延長了規則與EXEC資源運行以下命令chage -d 0 askar使用戶被強制更改密碼

exec { 
      'chage': 
      command => 'chage -d 0 askar' 
    } 
    } 

但是這不是爲我工作。您能否建議我如何讓用戶在下次登錄時被迫更改密碼?

回答

1

如果您在用戶資源中指定password,則puppet將會篡改用戶的密碼。您告訴puppet將用戶的密碼哈希值設置爲您帖子中的值,如果用戶更改了該值,它將在每次運行時繼續覆蓋該數據。您的最低年齡設置也意味着用戶在設置後30天內無法更改密碼,這可能會導致您的問題。

http://www.joseftschiggerl.name/2012/11/create-users-with-puppet/提出一個發行版相關的行動:

case $::osfamily { 
     RedHat: {$action = "/bin/sed -i -e 's/$id:!!:/$id:$pass:/g' /etc/shadow; chage -d 0 $id"} 
     Debian: {$action = "/bin/sed -i -e 's/$id:x:/$id:$pass:/g' /etc/shadow; chage -d 0 $id"} 
} 

但說實話,如果這些用戶帳戶而不是服務帳戶,你很可能會更幸福剛剛建立,處理密碼老化和LDAP服務器複雜性,而不必在每個盒子上用不同密碼管理多個用戶。

+0

是否無法禁用木偶清單,以便代理不會進一步閱讀它。 –

+1

不是,不。你可以用'refreshonly'做一些事情來讓一個資源只在其他資源被更新時才運行,但這是LDAP最好解決的問題,而不是puppet。 – r4v5

0

這已經回答了here

相關問題