一、/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 來查看該命令的相關參數與說明. 學習不是一個簡單的事情, 擺正心態,日積月累,勤加練習相信定有所獲.