linux使用者帳號(hào)添加、修改、刪除等管理詳解
Linux, 這個(gè)詞我敢說(shuō)100%的coder都聽(tīng)說(shuō)過(guò), 如果答案是否定的.那說(shuō)明這篇文章并不適合您!
其實(shí)Linux一直是眾多coder的弱項(xiàng), 包括筆者也是個(gè)菜鳥(niǎo)級(jí), 所以最近嘗試著從基礎(chǔ)學(xué)起, 寫(xiě)了幾年的代碼終于明白了萬(wàn)丈高樓平地起的道理. 基礎(chǔ)不好是很難進(jìn)步的.
今天我們來(lái)了解一下Linux的使用者帳號(hào)相關(guān)知識(shí), 那就不得不說(shuō)/etc/passwd, /etc/chadow文件了.
/etc/passwd (帳號(hào)重要參數(shù)文件), 來(lái)cat /etc/passwd看一下.
乍看一下覺(jué)得這東西很深?yuàn)W, 于是就放棄了. 那你就完蛋了. 這不是一個(gè)好習(xí)慣 , 其實(shí)很多事情只是看似很難, 如果你靜下心來(lái)去了解它, 你會(huì)發(fā)現(xiàn)他真的能走進(jìn)你的心扉! 呵呵.
你有沒(méi)有發(fā)現(xiàn)它是有規(guī)律的, 有很多行, 并且每行的用:分隔成了幾字段, 那到底是幾個(gè)字段呢, 是7個(gè).
其實(shí)這個(gè)文件的每一行都代表一個(gè)帳號(hào)(用戶), 有多少行就說(shuō)明系統(tǒng)中有多少個(gè)用戶, 不由得產(chǎn)生了一個(gè)問(wèn)題, 那7個(gè)字段又都是什么意思呢? 接下來(lái)我們來(lái)解釋一下這7個(gè)字段
第一字段 帳戶名稱. 如root(超級(jí)管理員)
第二字段 X (先以為他是就X好吧)
第三字段 UID(用戶的ID, 這東西對(duì)于系統(tǒng)來(lái)說(shuō)非常重要, 有人問(wèn)了不是有用戶名嗎為什么還有個(gè)狗P"UID", 其實(shí)對(duì)于系統(tǒng)來(lái)說(shuō)他只認(rèn)識(shí)這個(gè)UID, 用戶名只是提供給我們看的, 方便好記, 僅此而已)
第四字段 GID(群組的ID, 這東西對(duì)于系統(tǒng)來(lái)說(shuō)非常重要, 有人問(wèn)了不是有群組名嗎為什么....此處省略十幾字, 意思同上, 其實(shí)也沒(méi)省下.呵呵)
第五字段 用戶備注信息說(shuō)明列 (就是帳號(hào)的備注信息,比如這個(gè)帳號(hào)干什么用的.為什么建這帳號(hào)什么地)
第六字段 用戶的HOME目錄; 如:/home/www
第七字段 Shell (用戶登錄后取得的shell環(huán)境, 一般默認(rèn)為/bin/bash, 注意:如果你想建立一個(gè)帳號(hào)但卻又不想讓他登錄到系統(tǒng),那這里就起到作用了. 你只需把這欄設(shè)置成/sbin/nologin, 細(xì)心的朋友可能注意到了/etc/passwd 文件下很多的系統(tǒng)用戶這欄都是/sbin/nologin)
/etc/shadow
為什么要說(shuō)到這個(gè)文件呢, 這就需要從我們使用帳號(hào)登錄系統(tǒng)說(shuō)起了, 其實(shí)我們的登錄流程是這樣的:
以下我們以用戶echo來(lái)舉例.
1.根據(jù)輸入的用戶名去/etc/passwd中尋找echo這個(gè)用戶, 如果用戶不存在直接登錄失敗. 否則就會(huì)拿到UID, GID, 以及這個(gè)用戶擁有的SHELL環(huán)境等.
2.每二步在則是來(lái)到/etc/shadow文件中核對(duì)用戶輸入的密碼是否與echo這個(gè)用戶名密碼相同. 如果相同才能登錄系統(tǒng).
還記得/etc/passwd 中的每個(gè)字段"X"嗎. 這個(gè)X處在早以前是用來(lái)存放用戶密碼的, 后來(lái)因?yàn)榘踩缘膯?wèn)題把用戶的密碼提到了/etc/shadow中. 所以/etc/shadow這個(gè)文件的主要作用就是存放用戶的口令, 用戶登錄系統(tǒng)時(shí)來(lái)這里驗(yàn)證. /etc/shadow文件與/etc/passwd文件格式幾乎是一樣的, 唯一的區(qū)別是/etc/shadow把每一行分為9個(gè)字段.
第一字段 帳戶名稱 (與/etc/passwd保持一致)
第二字段 帳戶口令(即密碼, 加密過(guò)的所以是一串字符)
第三字段 最近一次修改的日期
每四字段 密碼多久之內(nèi)不能被修改, 以天為單位
第五字段 口令需要變更的天數(shù) (出于安全考慮, 可以這樣設(shè)置,強(qiáng)制用戶多久換一次密碼)
第六字段 口令變更前的提醒天數(shù)(根據(jù)第五個(gè)字段, 前多少天提醒用戶去修改口令)
第七字段 口令過(guò)期后的寬限時(shí)間(即第五字段過(guò)期后還可以寬限的天數(shù), 過(guò)了這個(gè)天數(shù)帳號(hào)就會(huì)默認(rèn)為失效了)
第八字段 帳號(hào)失效日期(帳號(hào)如果超出這個(gè)設(shè)置后就會(huì)失效, 通過(guò)用在收費(fèi)服務(wù)中, 或者我們的后臺(tái)任務(wù)當(dāng)時(shí), 任務(wù)完成帳號(hào)失效等)
第九字段 保留字段, 目前無(wú)實(shí)際應(yīng)用
用戶的相關(guān)文件說(shuō)完了. 你是否明白了. 如果你明白了, 接下來(lái)我們來(lái)看看操作帳號(hào)的幾個(gè)相關(guān)命令:
1.useadd(添加)
格式:useradd [-u UID] [-g 初始化群組] [-G 次要群組] [-mM] [-c 帳號(hào)說(shuō)明欄] [-d 家目錄絕對(duì)路徑] [-s shell] 帳號(hào)名稱
選項(xiàng)與參數(shù)
-u 指定UID, 可以省略該選項(xiàng), 系統(tǒng)會(huì)自動(dòng)分配一個(gè)UID
-g 初始化群組, 不指定默認(rèn)創(chuàng)建新的群組, 群組名與帳號(hào)名稱相同
-G 次要的群組, 可以指定該帳號(hào)的所屬的其它群組,多個(gè)用,分開(kāi), 如-G g1,g2,g3
-c 帳號(hào)的備注信息
-m 創(chuàng)建-d后指定的目錄, 此為默認(rèn)項(xiàng)
-M 不創(chuàng)建-d后指定的目錄
-d 該用戶的home目錄
-s shell腳本環(huán)境, 默認(rèn)為/bin/bash
如題: 我們創(chuàng)建一個(gè)test用戶,并且創(chuàng)建家目錄為/home/test, 設(shè)置次要群組為apache, 帳號(hào)備注為this is apache user
useradd -c'this is apache user' -Gapache -d'/home/test' -m test
2.usermod(修改)
選項(xiàng)與參數(shù), 大部分參數(shù)與useradd是一樣的. 這里我只簡(jiǎn)單介紹向個(gè)附加的參數(shù)
-l 后接新的帳號(hào)名稱, 意思是修改帳號(hào)名稱
-L 暫時(shí)凍結(jié)該帳號(hào), 讓帳號(hào)無(wú)法登錄, 修改/etc/shadow的第二欄為!, 即用戶口令欄,
-U 與-L相反, 解凍帳號(hào), 使帳號(hào)恢復(fù)正常使用
用法與useradd相同
3.userdel(刪除)
選項(xiàng)與參數(shù)
-r 連同用戶的HOME目錄一同刪除
如userdel -r test 將刪除test用戶, 并且將/home目錄下的test目錄一并刪除.
linux下的命令一般都會(huì)有好多參數(shù), 想記住是非常困難的. 這里也只是簡(jiǎn)單的介紹了一些常用的. 詳細(xì)的還需要我們用到的時(shí)候去查看, 比如可以用man usermod 來(lái)查看該命令的相關(guān)參數(shù)與說(shuō)明. 學(xué)習(xí)不是一個(gè)簡(jiǎn)單的事情, 擺正心態(tài),日積月累,勤加練習(xí)相信定有所獲.
關(guān)鍵詞:linux
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0
- 0
- 0
- 0
- 0
- 0