linux賬號管理詳解:/etc/passwd 和/etc/shadow

一、/etc/passwd (賬號重要參數文件), 來cat /etc/passwd看一下:linux

 

      乍看一下以爲這東西很深奧, 因而就放棄了. 那你就完蛋了. 這不是一個好習慣 , 其實不少事情只是看似很難, 若是你靜下心來去了解它, 你會發現他真的能走進你的心扉! 呵呵.shell

你有沒有發現它是有規律的, 有不少行, 而且每行的用:分隔成了幾字段, 那究竟是幾個字段呢, 是7個.apache

其實這個文件的每一行都表明一個賬號(用戶), 有多少行就說明系統中有多少個用戶, 不禁得產生了一個問題, 那7個字段又都是什麼意思呢? 接下來咱們來解釋一下這7個字段安全

第一字段  賬戶名稱. 如root(超級管理員)bash

第二字段  X (先覺得他是就X好吧)學習

第三字段  UID(用戶的ID, 這東西對於系統來講很是重要, 有人問了不是有用戶名嗎爲何還有個狗P"UID", 其實對於系統來講他只認識這個UID, 用戶名只是提供給咱們看的, 方便好記, 僅此而已)this

第四字段  GID(羣組的ID, 這東西對於系統來講很是重要, 有人問了不是有羣組名嗎爲何....此處省略十幾字, 意思同上, 其實也沒省下.呵呵)加密

第五字段  用戶備註信息說明列 (就是賬號的備註信息,好比這個賬號幹什麼用的.爲何建這賬號什麼地)spa

第六字段  用戶的HOME目錄; 如:/home/wwwtest

第七字段  Shell  (用戶登陸後取得的shell環境, 通常默認爲/bin/bash, 注意:若是你想創建一個賬號但卻又不想讓他登陸到系統,那這裏就起到做用了. 你只需把這欄設置成/sbin/nologin, 細心的朋友可能注意到了/etc/passwd 文件下不少的系統用戶這欄都是/sbin/nologin)

二、/etc/shadow:

爲何要說到這個文件呢, 這就須要從咱們使用賬號登陸系統提及了,  其實咱們的登陸流程是這樣的:

如下咱們以用戶echo來舉例.

1.根據輸入的用戶名去/etc/passwd中尋找echo這個用戶, 若是用戶不存在直接登陸失敗. 不然就會拿到UID, GID, 以及這個用戶擁有的SHELL環境等.

2.每二步在則是來到/etc/shadow文件中核對用戶輸入的密碼是否與echo這個用戶名密碼相同. 若是相同才能登陸系統.

還記得/etc/passwd 中的每一個字段"X"嗎. 這個X處在早之前是用來存放用戶密碼的, 後來由於安全性的問題把用戶的密碼提到了/etc/shadow中. 因此/etc/shadow這個文件的主要做用就是存放用戶的口令, 用戶登陸系統時來這裏驗證. /etc/shadow文件與/etc/passwd文件格式幾乎是同樣的, 惟一的區別是/etc/shadow把每一行分爲9個字段.

 

第一字段  賬戶名稱 (與/etc/passwd保持一致)

第二字段  賬戶口令(即密碼, 加密過的因此是一串字符)

第三字段  最近一次修改的日期  

每四字段  密碼多久以內不能被修改, 以天爲單位

第五字段  口令須要變動的天數 (出於安全考慮, 能夠這樣設置,強制用戶多久換一次密碼)

第六字段  口令變動前的提醒天數(根據第五個字段, 前多少天提醒用戶去修改口令)

第七字段  口令過時後的寬限時間(即第五字段過時後還能夠寬限的天數, 過了這個天數賬號就會默認爲失效了)

第八字段  賬號失效日期(賬號若是超出這個設置後就會失效, 經過用在收費服務中, 或者咱們的後臺任務當時, 任務完成賬號失效等)

第九字段  保留字段, 目前無實際應用

用戶的相關文件說完了. 你是否明白了. 若是你明白了, 接下來咱們來看看操做賬號的幾個相關命令:

.useadd(添加)

格式:useradd [-u UID] [-g 初始化羣組] [-G 次要羣組] [-mM] [-c 賬號說明欄] [-d 家目錄絕對路徑] [-s shell] 賬號名稱

選項與參數

-u  指定UID, 能夠省略該選項, 系統會自動分配一個UID

-g  初始化羣組, 不指定默認建立新的羣組, 羣組名與賬號名稱相同

-G  次要的羣組, 能夠指定該賬號的所屬的其它羣組,多個用,分開, 如-G g1,g2,g3

-c  賬號的備註信息

-m  建立-d後指定的目錄, 此爲默認項

-M  不建立-d後指定的目錄

-d  該用戶的home目錄

-s  shell腳本環境, 默認爲/bin/bash

如題: 咱們建立一個test用戶,而且建立家目錄爲/home/test, 設置次要羣組爲apache, 賬號備註爲this is apache user

useradd -c'this is apache user' -Gapache -d'/home/test' -m test

 

.usermod(修改)

選項與參數,  大部分參數與useradd是同樣的. 這裏我只簡單介紹向個附加的參數

-l   後接新的賬號名稱, 意思是修改賬號名稱

-L  暫時凍結該賬號, 讓賬號沒法登陸, 修改/etc/shadow的第二欄爲!, 即用戶口令欄,

-U  與-L相反, 解凍賬號, 使賬號恢復正常使用

用法與useradd相同

.userdel(刪除)

選項與參數

-r  連同用戶的HOME目錄一同刪除

如userdel -r test 將刪除test用戶, 而且將/home目錄下的test目錄一併刪除.

linux下的命令通常都會有好多參數, 想記住是很是困難的. 這裏也只是簡單的介紹了一些經常使用的. 詳細的還須要咱們用到的時候去查看, 好比能夠用man usermod 來查看該命令的相關參數與說明.  學習不是一個簡單的事情, 擺正心態,日積月累,勤加練習相信定有所獲.

相關文章
相關標籤/搜索