2014-01-31 31 views
0

我想用Vagrant創建一個Ubuntu VM。我的主機是Windows7,我的basebox是精確的64。 如果我添加在木偶用戶這樣的推薦方法:如何獲得流浪/木偶正確添加Linux密碼?

user { "johnboy": 
    ensure => present, 
    managehome => true, 
    password => '$6$ev8faya2$M2pB3YQRpKUJMnJx6LnsyTbDdi.umsEEZttD01pk8ZSfMGrVmlnjoVhIHyuqYt3.yaG1SZjaoSxB39nNgFKb//', 
    groups => ["admin"], 
    shell => "/bin/bash"; 
} 

我登錄無業遊民已置備我的箱子和哈希是不是在/ etc/passwd文件之後。

如果我不與資源類型,但使用exec和usermod命令這樣

user { "johnboy": 
    ensure => present, 
    managehome => true, 
    groups => ["admin"], 
    shell => "/bin/bash"; 
} 

exec { 'set password': 
    command => "usermod -p '$6$ev8faya2$M2pB3YQRpKUJMnJx6LnsyTbDdi.umsEEZttD01pk8ZSfMGrVmlnjoVhIHyuqYt3.yaG1SZjaoSxB39nNgFKb//' johnboy", 
    require => User[johnboy]; 
} 

我在/ etc/passwd文件

johnboy:.umsEEZttD01pk8ZSfMGrVmlnjoVhIHyuqYt3.yaG1SZjaoSxB39nNgFKb//:16101:0:99999:7::: 

結束與哈希只有部分設置有些建議安裝紅寶石的影子,所以我嘗試這樣做:

gem install ruby-shadow 

但是,安裝失敗,可能BEC因爲我沒有安裝Ruby。 Vagrant是一個100 MB的下載。管理密碼的寶石是否真的不包括在內?

如何讓Vagrant/Puppet正確設置密碼?

回答

1

這是因爲它存儲在/ etc/shadow文件中。這是出於安全原因,因爲它只能由root/super用戶訪問。

像這樣逃離美元符號,它應該工作。

exec { 'set password': 
    command => "usermod -p '\$6\$ev8faya2\$M2pB3YQRpKUJMnJx6LnsyTbDdi.umsEEZttD01pk8ZSfMGrVmlnjoVhIHyuqYt3.yaG1SZjaoSxB39nNgFKb//' johnboy", 
    require => User[johnboy]; 
} 
+0

作爲根的流浪者規定不是嗎?這並不能解釋我在何時放入哈希並運行usermod,只有一半數據在/ etc/passwd中。 – opticyclic

+1

轉義密碼中的$符號像\ $,這是必要的,因爲您用雙引號將命令封裝並允許可變插值 – cocheese