本文由秀依林楓提供友情贊助,首發于爛泥行天下。
前一篇文章,我們介紹了有關puppet3.7的安裝與配置,這篇文章我們再來介紹下如何利用puppet添加帶密碼的用戶。
要通過puppet添加帶密碼的用戶,我們需要分以下幾個步驟:
1、查看user資源幫助
2、user選項說明
3、添加系統用戶
4、生成用戶密碼
5、添加帶密碼的用戶
一、查看user資源幫助
要通過puppet為系統添加用戶,我們需要首先查看puppet如何添加用戶,這個我們可以查看puppet的user資源幫助信息。如下:
puppet describe user
puppet describe user命令可以查詢user資源各個選項的幫助信息。
除此之外,我們還要通過puppet resource user命令,查看user資源在puppet中的使用方法,以及puppet中給出的user的資源使用模版。如下:
puppet resource user
二、user選項說明
user資源的選項比較多,我們在此主要介紹幾個常用的選項。
ensure指定用戶所處的狀態,其值可以為:PResent、absent、role。其中present表示添加用戶,absent表示刪除用戶。
uid指定用戶的UID。
gid設置用戶的組ID,可以是數字也可以是組名。
groups設置用戶的組名,只能是組名,不能是gid。
name指定用戶名。
comment用戶的描述。
expiry用戶使用期限。
home設置用戶的家目錄,user資源默認不創建用戶家目錄。
passWord指定用戶的密碼。
shell指定用戶登錄的shell。
system指定用戶是否為系統用戶,一般是小于500的UID用戶。
三、添加系統用戶
通過第一章節,我們知道了如何使用user資源,那么我們現在就添加一個用戶。
3.1 給centos添加用戶
在《爛泥:puppet3.7安裝與配置》這篇文章中,我們提到puppet目前搭建在centos系統之上,所以我們先來給centos系統添加一個用戶。
在puppet master端編輯puppet的站點文件site.pp,如下:
vi /etc/puppet/manifests/site.pp
node default{
user { 'ilanni':
ensure => 'present',
}}
這條命令的作用是,創建用戶ilanni。其中ensure后邊的字段為present表示創建ilanni這個用戶,如果ensure后邊的字段為absent表示刪除ilanni這個用戶。
puppet master端配置完畢后,現在我們切換puppet agent端,執行同步命令。如下:
cat /etc/system-release
puppet agent --test --server s.ilanni.com
通過上圖,我們可以很容易的看到agent端已經從master端同步到相關的命令。
現在我們來查看,系統中是否已經創建ilanni這個用戶。如下:
cat /etc/passwd |grep ilanni
cat /etc/group |grep ilanni
ll /home/
通過上圖,我們可以看出系統中已經創建ilanni這個用戶。
注意:通過上圖,我們可以很明顯的看出來。目前ilanni用戶是沒有家目錄的。盡管passwd文件顯示有其家目錄,所以ilanni用戶是不能登錄到系統中的。
以上操作都是centos系統,因為puppet具有跨平臺的性能,所以我們下面就在Ubuntu上執行puppet同步。
3.2 給ubuntu添加用戶
要給ubuntu添加用戶,我們需要先給ubuntu安裝puppet客戶端。
有關在ubuntu上安裝puppet客戶端,我們可以查看puppet官網提供的幫助信息。如下:
https://docs.puppetlabs.com/guides/install_puppet/install_debian_ubuntu.html
wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get update
apt-get -y install puppet
puppet客戶端安裝完畢后,我們來配置puppet和授權證書。有關puppet客戶端的配置以及證書授權,可以參考《爛泥:puppet3.7安裝與配置》這篇文章。
具體操作,看如下截圖:
cat /etc/hosts
puppet agent --server s.ilanni.com
puppet cert --list
puppet cert sign c1.ilanni.com
puppet配置完畢后,我們現在在ubuntu上執行同步命令。如下:
puppet agent --test --server s.ilanni.com
查看是否創建ilanni用戶,如下:
通過上圖,我們可以很明顯的看出puppet已經在ubuntu系統創建用戶。
3.3 給windows添加用戶
puppet也是支持windows系統,但是目前puppet只支持puppet客戶端。
有關puppet的windows系統相關幫助信息,我們也可以在puppet官網查看幫助,如下:
https://docs.puppetlabs.com/guides/install_puppet/install_windows.html
有關puppet客戶端在windows系統的下載及安裝,我們在此就不一一進行截圖。
puppet客戶端安裝完畢后,puppet的操作及配置與centos系統是一樣的。如下:
通過上圖,我們可以很容易的看出windows系統中也創建ilanni這個用戶。這充分體現了puppet 的跨平臺性。
注意:puppet for windows目前只支持file、user、group、scheduled_task(Windows專屬資源類型)、package、service、exec、host,這個幾個資源類型。
四、生成用戶密碼
linux系統的密碼都不是明文的,而是經過加密的。
要生成Linux系統密碼,我們有兩種方法:一種是先新建一個用戶然后對對該用戶設置密碼,最后取其對應的shadow文件第一個冒號與第二個冒號之間的內容。第二種是通過grub-md5-crypt進行生成。
下面我們一一介紹下,本次我們測試的密碼為ilanni123。
通過查看shadow文件的方法:
useradd test
passwd test
cat /etc/shadow |grep test
上圖中紅色細線標記出來的部分,就是我們所需要的加密后的密碼。
通過grub-md5-crypt生成密碼的方法:
yum -y install grub
grub-md5-crypt
上圖中紅色細線標記出來的部分,就是我們所需要的加密后的密碼。
對比下以上兩種方法,你會發現盡管密碼是一樣的,但是經過加密后的卻不一樣。
對于以上兩種方法,我比較傾向于第一種方法,查看shadow文件。因為這種方法不需要在安裝其他軟件。
注意:windows系統添加用戶密碼時,使用的是明文,不需要加密。
五、添加帶密碼的用戶
密碼創建完畢后,我們現在來正式創建帶密碼的用戶。
其實很簡單的,我們只需要把相關的選項寫上去就行了。內容如下:
cat site.pp
user { 'ilanni':
ensure => 'present',
home => '/home/ilanni',
shell => '/bin/bash',
password => '$6$5YNwr11X$cfNwsJNrGBVg/yEE.sL1E.Ch5KoZrVrhmz4bOP8QnhWRBS/hCYNxP52EGdS38aSJhB8GBN60PSbcaNbcjofUt0',
}
file {'/home/ilanni':
owner => ilanni,
group => ilanni,
mode => 700,
ensure => directory;
}
注意:該命令中出現了file資源,主要目的是對/home/ilanni目錄進行授權以及修改其所屬用戶及用戶組。
這樣操作,是因為ilanni用戶的家目錄就是/home/ilanni,如果不對其進行授權以及修改其所屬用戶及用戶組的話,ilanni是無法登錄到系統的。
現在切換到puppet agent端,執行同步命令。如下:
puppet agent --test --server s.ilanni.com
通過上圖,我們可以很明顯的看出agent端已經同步到相關命令。
現在我們使用剛剛創建的用戶登錄系統,如下:
whoami
通過上圖,我們可以很明顯的看到ilanni用戶已經可以正常登錄到系統中了。
以上是在centos系統上進行操作的,下面我們在ubuntu系統上操作下。如下:
通過上圖,我們可以很明顯的看到新創建的用戶已經可以登錄到系統中了。
以上是在centos和ubuntu系統中進行操作的,可以看到創建的用戶已經可以正常登錄到系統了。
windows系統與centos、ubuntu添加帶密碼的用戶不同,那就是windows系統添加的用戶密碼是明文的。即puppet master端user資源的password選項使用明文。
如下:
cat /etc/puppet/manifests/site.pp
node default{
user { 'ilanni':
ensure => 'present',
password => 'ilanni123',
} }
現在切換到windows端執行同步操作,如下:
通過上圖我們可以看到,windows系統中puppet已經創建了ilanni用戶,并且也可以正常登錄系統了。
到此有關通過puppet創建帶密碼的用戶就結束了。
新聞熱點
疑難解答