Linux命令-用戶密碼和組密碼管理

  用戶密碼和組密碼分別保存在/etc/shadow和/etc/gshadow裏,下面我們對這兩個文件進行分析。

   首先,cat /etc/shadow:wKioL1NgjWnDQY-EAACCFbaGzmk665.jpg


shadow裏保存的內容都是分段的,每段以”:“分隔,每一段的內容如下:

用戶名:加密後的密碼:最近一次修改密碼的日期:密碼最短使用天數:密碼最長使用天數:提前多少天提示用戶密碼即將過期:密碼非活動天數:密碼鎖定日期:保留字段

   第二段:加密後的密碼

   通過man 3 crypt可知:

   $id$salt$encrtpted

   id:表示加密方法

wKiom1NglPrAHeu7AACARP0yjGk589.jpg

salt:是從[a-zA-Z0-9./]隨機選取的2個字符,用來擾亂算法的

   encrtpted:用戶真正的經過加密算法計算過的密碼

第三段:最近一次修改密碼的日期,這項表示的是1970-01-01距離密碼修改日期共經歷了多少天

   第四段:密碼最短使用天數,0表示沒有限制

   第五段:密碼最長使用天數,99999表示無限制

   第七段:密碼非活動天數,0表示密碼過期立即鎖定,-1表示密碼永不過期

   第八段:密碼鎖定日期,這項表示的是1970-01-01距離密碼修改日期共經歷了多少天


   和用戶密碼相關的命令有passwd,usermod,chage,接下來我們一一講解它們的用法:

   1.passwd [option] USERNAME

a.新建hadoop用戶,並查看shadow

wKiom1NgpF2D7Zr6AABKNFkyxR4494.jpg

注意第二個字段是!!,因爲還沒有爲hadoop設置密碼,我們可以用passwd爲用戶設置密

格式:passwd USERNAME

wKiom1NgpQ2QqmzwAACTmsO7DvE912.jpg

登錄成功:wKioL1NgpZfwsPy5AAAPLWO-7aw970.jpg


a.1 :

passwd還有另一種爲用戶設置密碼的方式:

passwd --stdin USERNAME

passwd支持使用管道讀取標準輸入作爲新密碼。

wKioL1NjtRThsklcAACPChvrPP4200.jpg

b.鎖定用戶:

格式:passwd -l USERNAME

wKiom1NgpeCwYzoDAABB6ZtcfbM376.jpg

登錄失敗:

wKiom1NgpiSxT8keAAAbv-BfoPg333.jpg

查看shadow,密碼段最前面多了!!,密碼不對了,不能登錄是正常的:

wKioL1NgpnzBzmGZAACI4YlFrAk800.jpg

c.解鎖用戶:

格式:passwd -u USERNAME

wKioL1NgptOg4hIMAADLsiQ00xI590.jpg

d.修改密碼最短使用天數:

格式:passwd -n 天數 USERNAME

wKioL1Ngp0eQpmqKAAC8ufucP14233.jpg

e.修改密碼最長使用天數

格式:passwd -x 天數 USERNAME

wKioL1Ngp-bgYeF9AADRfOS5Uyg150.jpg

f.修改提前多少天提示用戶密碼即將過期:

格式:passwd -w 天數 USERNAME

wKiom1NgqIKDnbrGAADUNKRSCmA701.jpg

g.修改密碼非活動天數:

格式:passwd -i 天數 USERNAME

wKioL1NgqM7RqhdrAADO-dwWnAc460.jpg

h.使密碼立即過期,並強制用戶登錄時更改密碼:

格式:passwd -e USERNAME

wKiom1Ngq3LCpY-YAAA1iN3qG-g110.jpg

wKiom1Ngq9niwxNbAAB1GKvzlVo527.jpg

2.chage [option] USERNAME

a.修改最後一次密碼修改日期:

格式:chage -d YYYY-MM-DD USERNAME

hadoop最後一次修改密碼是2014-04-30,第3個字段爲16190;通過chage更改了最後一次密碼修改日期爲爲2014-04-29,所以第3個字段變爲了16189

wKiom1Ngqlzwblh_AAGQh4hRRO0861.jpg

b.修改密碼最短使用天數:

格式:chage -m USERNAME

wKiom1NgrFDjFazfAACntv2fDsg559.jpg

c.修改密碼最長使用天數

格式:chage -M USERNAME

wKioL1NgrJrQjSuPAACryTOwwao203.jpg

d.修改提前多少天提示用戶密碼即將過期:

格式:chage -W USERNAME

wKiom1NgrUfz-xO_AAAYnubIXH0674.jpg

e.修改密碼非活動天數:

格式:chage -I USERNAME

wKiom1NgrazDl0zCAAChg6AOm1Y575.jpg

f.修改過期時間:

格式:chage -E YYYY-MM-DD USERNAME

現在是2014-04-30(距離1970-01-01是16190天),我們修改密碼2014-05-01過期,所以是16191

wKiom1NgrxSQFODQAADMSnp3Zso512.jpg

3.usermod

a.修改密碼過期日期:

格式:usermod -e YYYY-MM-DD USERNAME

wKioL1NgrzbRySbAAAC-3yzZvK4692.jpgb.修改密碼非活動天數:

格式:usermod -f 天數 USERNAME

wKiom1Ngr8nxmgkUAACpBYnnqsw638.jpg


例:

修改用戶最後一次修改密碼日期2014-4-20,密碼最短使用2天,最長使用10天,提前7天警告,非活動天數3天。

密碼2014-04-30過期,但是非活動天數是3天,2014-05-01到05-03是非活動天數,如果不修改密碼將鎖定。

wKioL1NgvvywWUDYAAEHah67qZ0482.jpg


由於密碼2014-04-30已過期,所以登錄會提示密碼已過期:

wKiom1Ngv8GSp1eoAAB5d9wwyoM777.jpg


但是由於非活動天數3天,該到2014-05-03鎖定,那麼我們把現在的日期改爲2014-05-01,理論上用hadoop登錄系統時會提示修改密碼:

wKioL1NgwVegJHhuAACDbW6R4Z8340.jpg


使用hadoop登錄系統:

wKioL1NgwZrj7WZiAACUkaXpToI689.jpg

果然,我們的猜想都是對的。


   我們還可以給組設置密碼,使用gpasswd命令:

格式:gpasswd GRPNAME

wKioL1NgsmyybZCrAABXvodeJqg847.jpg

wKioL1NgsqSiPjr9AAB9rIJXggQ364.jpg


我們給test組設置密碼:

wKioL1Ngsyiy9qYRAACEkOagTzY174.jpg


切換到hadoop用戶,並新建a.txt文件:

wKioL1Ngs4eQ5KbpAABWt9Ng6WE802.jpg


我們如何用hadoop用戶新建b.txt的屬組是test組?

wKiom1NgtB3A_xb2AAB3fL5dkcs571.jpg

查看hadoop id信息:

wKioL1NgvH-ygXfMAAB-rmcqwqs067.jpg


我們新建oracle組,並將其添加到hadoop的附加組:

wKiom1NgtSiSePF3AAB-rfmK0_8076.jpg

給oracle組設置密碼:

wKioL1NgtTzSpHZ7AABC8-5r6F4939.jpg

再切換到hadoop,並切換到oracle組,新建c.txt:

wKiom1NgthSRfp6MAACE1WirVHA705.jpg

查看hadoop id信息:

wKioL1NgvLrQTVf8AACAgjkO0s0018.jpg


由下圖可以看出:

鍵入exit並回車,新建的d.txt屬組爲用戶hadoop的基本組

wKioL1Ngtkji72L7AAC1NzXbluo475.jpg


總結:

1.newgrp命令的作用就是log in to a new group

1使用newgrp命令切換的new group將臨時作爲該用戶的基本組;

2.如果new group是該用戶的附加組,則不需要輸入密碼;否則,需要輸入密碼;

3.使用exit退出改用戶的臨時基本組,返回用戶自己的基本組;


newgrp的命令格式:

newgrp [-] [group],-的作用和su [-] anotheruser類似;

有關gpasswd和newgrp請自行man其詳細用法。

如上述內容有錯誤的地方,希望大家諒解,並指出錯誤所在,小弟感激不盡!

我是一隻小小小菜鳥,希望能飛得更高!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章