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