歡迎您光臨本站 註冊首頁

普通用戶管理(上篇)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
普通用戶管理(上) 用戶管理的基本任務包括添加新用戶、刪除用戶、修改用戶屬性,以及對現有用戶的訪問參數進行設置.與此密切相關的文件包括/etc/passwd、/etc/shadow,以及/home目錄下的文件.雖然Red Hat Enterprise Linux提供了圖形化工具用來完成這些任務,但大多數管理員更習慣於在命令行界面中執行管理操作. 一、 添加新用戶
系統中一個合法的用戶應該具有用戶名、真實姓名、密碼和登錄環境等用戶信息.與此相對應,添加一個新用戶通常需要系統完成一下幾項操作:
1. 設置用戶名稱及密碼
2. 設置用戶的UID.系統在/etc/passwd文件中查找目前使用的大於或等於500的UID的最大編號,加1后賦予當期的用戶;若目前還沒有大於500的編號,則將500賦予該用戶
3. 添加該用戶所屬的用戶組.每一個用戶都會屬於一個或多個用戶組.系統在添加新用戶時默認添加的用戶組與新用戶名相同,同時會賦予該用戶組一個GID,通常GID的編號與UID的編號相同
4. 創建以新用戶的用戶名為名稱的主目錄.在大多數系統中,用戶的主目錄都被創建在同一個特定目錄下,例如/home.各用戶對自己的主目錄有完全的讀、寫執行許可權,其他用戶只能依據該目錄的許可權設置進行訪問
5. 設定用戶的shell環境,默認是/bin/bash
6. 設定用戶的失效時間,默認是99999天後
7. 設定失效前發出警告的天數,默認是失效前7天
在Red Hat Enterprise Linux的安裝過程中,系統會自動創建若干個默認的標準用戶(Standard Users),其中除了root代表系統管理員之外,其餘帳號都是系統帳號.系統帳號是應用程序在運行過程中所具有的許可權.


管理員可以使用useradd或adduser命令來添加一個新的用戶.在Red Hat Enterprise Linux中,通過查看adduser和useradd這兩個命令的文件信息,可以看出其功能是完全相同的:

可以看出,adduser命令只是useradd命令的一個鏈接文件,如此設計只是為了方便用戶的使用.useradd程序通常在/usr/sbin目錄中,命令格式為:
useradd [-D] [-c] [-d] [-e] [-f] [-g] [-G] [-m] [-M] [-s] [-u] [-n] [-r]
不帶參數-D時,useradd命令用來指定新賬戶的設定值,如果沒有指定則使用系統的默認值.useradd可使用的選項如下所述:
 -c comment:用戶的註釋說明
 -d home_dir:用戶每次登錄系統時所使用的登錄目錄,可以用來取代默認的/home/username主目錄
 -e expire_date:帳號失效日期.日期的指定格式為MM/DD/YY
 -f inactive_days:設定從帳號過期到永久停用的天數.當其值為0時帳號到期後會立即被停用.而當值為-1時,帳號不會被停用,系統默認值是-1
 -g initial_group:用戶默認的用戶組或默認的組ID.該用戶組或組ID必須是已近存在的,其默認組ID值為100,即屬於users組
 -G group[,…]:設定該用戶為若干用戶組的成員.每個用戶組使用「,」分隔,且不可以夾雜空格.組名與-g選項的限制相同,且-g的設定值為用戶的第一用戶組
 -m:用戶目錄如不存在則自動建立.若使用-k選項,則skeleton_dir目錄內的文檔會複製至此用戶目錄中,同時/etc/skel目錄下的文檔也會複製過去.任何在skeleton_dir或/etc/skel中的目錄也同樣會在該用戶目錄下一一建立.-k和-m的默認值是不建立目錄及不複製任何文檔
 -M:不建立用戶主目錄,使用/etc/login.defs系統文件夾對用戶進行設定
 -n:系統默認用戶組名稱與用戶名稱相同.打開此選項將取消該默認設定


 -r:此參數用來建立系統帳號.系統帳號的UID是比定義在/etc/login.defs中的UID_MIN小的值,UID_MIN的默認值是500(該參數所建立的帳號不會創建用戶主目錄,也不會依據/etc/login.defs對用戶進行設置.如果想創建用戶主目錄,須額外指定-m參數)
 -shell default_shell:指定用戶的登錄shell,系統默認為/bin/bash
 -u uid:用戶的UID值.該數值在系統中必須唯一,且數字不可為負值.0—499傳統上預留給系統帳號使用
帶參數-D且配合其他選項,useradd可以對系統的默認值進行重新設定.如不帶任何其他選項,則顯示當前的默認值,如下所示: 如使用useradd命令修改系統默認值,命令行如下: 例如添加一新用戶student2,UID為502,用戶組ID為100(users用戶組的標識符是100),用戶目錄為/home/student2,用戶的默認Shell為/bin/bash,帳號的失效日期為2011年10月30日,其命令行為: 新添加用戶的用戶信息存儲在/etc/passwd和/etc/shadow文件尾行,使用tail命令可以查看: 如果新添加的用戶名已經存在,那麼執行useradd命令后,系統會提示用戶已存在: 二、 解析/etc/passwd文件
/etc/passwd文件存儲著用戶的相關信息,包括用戶名、密碼和主目錄位置等.根用戶對該文件有讀和寫的許可權,普通用戶只有讀許可權.Linux 2.0以上版本為了增強系統的安全性,採用了用戶基本信息與密碼分開存儲的方法,密碼已不再存放在/etc/passwd文件中,而是轉存到了同目錄下的/etc/shadow文件中,其原來存在密碼的位置用「x」標識./etc/passwd存儲的信息格式如下:
Username:encypted password:UID:GID:full name:home directory:login shell
其中共7個欄位,各欄位之間用「:」分隔.利用cat命令查看/etc/passwd文件內容如下:


可以使用vipw命令直接編輯/etc/passwd文件.vipw命令功能上相當於「vi /etc/passwd」命令,但比直接使用vi命令更安全.在用vipw命令編輯passwd文件時將自動對該文件加鎖,編輯結束自動解鎖,從而保證了數據的一致性.
文件中列出了所有用戶的信息,每個用戶佔用一行,行中各欄位含義如下:
1. 用戶名:用戶名是用戶在系統中的標識,通常長度不超過8個字元,由字母、數字、下劃線或句點組成
2. 密碼:該欄位存放加密后的用戶密碼.由於現在的系統大多採用shadow技術,該欄位通常只存放一個特殊的字元「x」,真正的密碼已轉移到/etc/shadow文件中
如果該欄位的第一個字母是「#」,如下例所示,則表示該用戶已被停用,即系統暫時不再允許該用戶登錄,但該用戶的信息和相應的主目錄及屬主文件仍保存在系統中,並沒有被系統刪除:
3. 用戶標識號(UID):UID是用戶在系統中的唯一標識號,必須是整數,通常與用戶名一一對應.當用多個用戶名同一個UID時,系統會把它們視為同一用戶
UID的取值範圍是0—65535.0—499一般由系統自己保留,其中「0」由根用戶佔用,新增用戶的UID和GID需要大於或等於500.
4. 用戶組標識號(GID):該欄位記錄用戶所屬的用戶組.用戶組的具體定義可以查看/etc/group文件
5. 個人信息描述:該欄位記錄用戶的真實姓名、電話、地址和郵編等個人信息.各項之間用「,」分隔,該欄位內容可以為空
6. 登錄目錄:該目錄是用戶登錄系統后的默認目錄,通常就是用戶的主目錄,一般在/home下.根用戶登錄系統后默認的登錄目錄是/root
7. 登錄shell:用戶以文本方式登錄系統后需要啟動一個shell進程.Shell是用戶和Linux內核之間的介面程序,負責將用戶的操作傳遞給內核,shell也被稱為命令解釋器.在Linux系統中有多鍾shell可以使用,各shell之間略有差別,常用的包括sh(Bourne Shell)、csh(C Shell)、ksh(Korn Shell)、tchs(TENEX/TOPS-20 type C Shell)和bash(Bourne Again Shell)等.其中C shell可以提供方便的用戶界面設計,語法與C語言很相似,而Korn shell兼有C shell和Bourne Shell的優點


無論是普通用戶還是根用戶,登錄系統后都會進入該欄位指定的命令解釋器狀態下,用戶輸入的每一個命令都將被這個命令解釋器翻譯執行.
該欄位也可以指定一個特定的程序,此時用戶登陸后只能執行該程序.程序執行一結束,用戶就自動退出系統.

(由於字數太多,故分兩篇上傳) 聯繫郵箱:minwanvip@163.com
QQ群:107642321 (誠邀您的加入)

本文出自 「網路技術聯盟」 博客,請務必保留此出處http://wljslm.blog.51cto.com/2116717/506661


[火星人 ] 普通用戶管理(上篇)已經有495次圍觀

http://coctec.com/docs/linux/show-post-49274.html