2014-07-16 43 views
3

我使用的是user cookbook,它對所有其他用戶帳戶都正常工作。使用廚師(獨奏)我如何設置root用戶的密碼?

我可以使用數據包中列出的密鑰填充根用戶的authorized_keys文件,但是密碼未設置。

這裏的root用戶我的數據包(data_bags/users/root.json)的內容:

{ 
    "id": "root", 
    "uid": 0, 
    "home": "/root", 
    "home_dir_mode": "0700", 
    "password": "shadowpasswordhash", 
    "ssh_keys": [ 
    "ssh-rsa averylongkey"  
    ], 
    "ssh_keygen": false 
} 

回答

1

這可能是在食譜中的錯誤。

我會使用Seth Vargo維護的「官方」社區食譜(http://community.opscode.com/cookbooks/users)而不是那個。

根據記錄,我成功使用標準user資源來管理root用戶密碼。鑑於敏感性,最好將其與其他用戶帳戶分開處理根帳戶。


例如,你可以使用內置的user資源設置root密碼是這樣的:

password_hash = ... 

    user "Setting root password" do 
    username 'root' 
    password password_hash 
    action :modify 
    end 

設置SSH密鑰需要確保該/root/.ssh/目錄中,並且具有正確的權限,然後創建包含公鑰並具有正確權限的/root/.ssh/authorized_keys。這樣的事情:

public_key = ... 

directory "/root/.ssh" do 
    owner "root" 
    mode 0700 
end 

file "/root/.ssh/authorized_keys" do 
    owner "root" 
    mode "600" 
    content public_key 
end 
+0

感謝您的建議,我肯定會看看'用戶'食譜。你是否可以編輯你的答案來舉例說明如何使用'user' **資源**來設置root用戶的密碼和密鑰? – tommarshall

0

爲了設置用戶的影子密碼,你需要有提供給廚師ruby-shadow寶石(這是不默認安裝)。這是記錄在默認user resource其中鏈接食譜僅僅是一個包裝。

爲了安裝寶石,只需添加這其中包括在你設置的用戶之前運行列表配方:

chef_gem "ruby-shadow" 
+0

我不認爲這是問題,因爲用戶食譜(這無疑使用用戶資源)能夠設置所有其他用戶的影子密碼,它只是根證明是證明耐藥。 – tommarshall