多用戶
linux操作系統(tǒng)是多用戶管理系統(tǒng)友瘤,管理起來(lái)非常麻煩摄欲,所以用組的概念來(lái)管理用戶就變的簡(jiǎn)單多了,一個(gè)用戶可以屬于多個(gè)組空凸,一個(gè)組可以有多個(gè)用戶较解,用戶和組是多對(duì)多的關(guān)系畜疾。
linux的多用戶多分組管理系統(tǒng)都是針對(duì)文件來(lái)說(shuō)的,每個(gè)文件都有所屬的用戶和所屬的分組印衔。
用戶種類
linux系統(tǒng)是根據(jù)用戶UID來(lái)識(shí)別用戶的啡捶,并不是根據(jù)用戶名。linux用戶分為以下3種
-
root用戶也叫超級(jí)用戶(UID為0):該用戶具有最高權(quán)限奸焙,可以操作任何文件瞎暑,盡管文件權(quán)限是000彤敛。在linux字符操作頁(yè)面中,root賬號(hào)的提示符為#了赌。
系統(tǒng)用戶(UID為1-499):系統(tǒng)用戶是linux系統(tǒng)正常運(yùn)行的內(nèi)建用戶墨榄,通常是為了管理某種服務(wù),如ftp服務(wù)勿她,以及sshd服務(wù)等袄秩。系統(tǒng)用戶是不能用來(lái)登錄的。
-
普通用戶(UID大于500):普通用戶是為了合理管理linux資源而建立的用戶逢并。在linux的字符操作頁(yè)面播揪,普通用戶的提示符一般為$。
查看系統(tǒng)所有用戶
- 在/etc/passwd文件中存儲(chǔ)著系統(tǒng)的所有用戶筒狠,使用如下命令查看
cat /etc/passwd
每行數(shù)據(jù)為一個(gè)用戶,可以看到紅色部分為root超級(jí)用戶箱沦,藍(lán)色部分為系統(tǒng)用戶辩恼,綠色部分為普通用戶。
- 可以看出圖片中每行數(shù)據(jù)大致7段谓形,使用:作為分隔符灶伊,格式如下
用戶名:X:UID(用戶id):GID(組id):用戶說(shuō)明:用戶家目錄:Shell版本
- 用戶名:用戶名只是管理員方便記憶,系統(tǒng)是根據(jù)UID來(lái)識(shí)別用戶的寒跳。使用命令
useradd userName
或者adduser userName
來(lái)創(chuàng)建新的用戶 - x:代表的是密碼標(biāo)志聘萨,而不是真正的密碼。如果第二段是x則代表該用戶有密碼童太,如果沒(méi)有x則代表該用戶沒(méi)有密碼米辐。**用戶真正的密碼保存在/etc/shadow文件中,該文件的權(quán)限是
000
,也就是說(shuō)只有root用戶才能查看书释。 - UID:用戶id翘贮,要知道linux系統(tǒng)就是通過(guò)用戶id來(lái)識(shí)別不同的用戶和分配不同的權(quán)限的。
- GID:此字段意思為組id爆惧,更確切的說(shuō)是
初始組id
狸页。說(shuō)到初始組就得說(shuō)說(shuō)初始組
和附加組
的概念了。
所謂初始組扯再,新建一個(gè)用戶后芍耘,系統(tǒng)會(huì)自動(dòng)新建一個(gè)與該用戶名相同的組,并將該用戶分配到該組中熄阻,該組就是該用戶的初始組斋竞。每個(gè)用戶的初始組只能有一個(gè),舉例來(lái)說(shuō)饺律,我們手工添加用戶useradd lamp
窃页,在建立用戶 lamp 的同時(shí)也會(huì)創(chuàng)建lamp的組名跺株。還有一個(gè)注意的點(diǎn),就是新建用戶的UID和GID一般是相同的脖卖。
所謂附加組:指用戶后期可以加入多個(gè)其他的用戶組乒省,并擁有這些組的權(quán)限。每個(gè)用戶只能有一個(gè)初始組畦木,附加組卻可以有多個(gè)袖扛,此時(shí)用戶的權(quán)限就是初始組的權(quán)限+附屬組的權(quán)限。
需要注意:在 /etc/passwd 文件的第四個(gè)字段中看到的 ID 是這個(gè)用戶的初始組十籍。 - 用戶說(shuō)明:這個(gè)用戶的簡(jiǎn)單說(shuō)明蛆封,沒(méi)有什么特殊作用,可以不寫(xiě)勾栗。
- 用戶家目錄:也就是用戶登錄后有操作權(quán)限的訪問(wèn)目錄惨篱,我們把這個(gè)目錄稱為用戶的家目錄。通常都會(huì)在/home下自動(dòng)創(chuàng)建與用戶名同名的用戶家目錄围俘,舉個(gè)例子砸讳,創(chuàng)建新用戶useradd db,這是用戶db的家目錄是/home/db。
簡(jiǎn)單說(shuō)就是root用戶的家目錄是 /root 目錄界牡,普通用戶是 /home/userName下.
在linux字符操作頁(yè)面的~
就是指當(dāng)前用戶的家目錄
- shell命令:linux默認(rèn)是/bin/bash,寫(xiě)過(guò)shell腳本的都應(yīng)該知道簿寂。
- 所有用戶都是可以查看此文件的,我們可以查看該文件的ll宿亡。
[db@002 ~]$ ll /etc/passwd
-rw-r--r-- 1 root root 1194 Feb 20 21:31 /etc/passwd
我們可以看到該文件屬于root用戶和root組常遂。然后root用戶權(quán)限是rw-,root組內(nèi)成員的權(quán)限是r--,而其他用戶的權(quán)限是r--挽荠。由于其他用戶的權(quán)限都是r--克胳,所以任何用戶都是可以讀的。
查看系統(tǒng)所有組
在/etc/group文件中存儲(chǔ)著系統(tǒng)的所有組,查看文件內(nèi)容圈匆,如下圖
大致分為4段
- 組名:上面介紹過(guò)毯欣,不在贅述
- 密碼:x代碼加密標(biāo)示,和passwd文件中類似臭脓。group的組密碼保存在 /etc/gshadow 文件中酗钞。
- GID:組id
- 組內(nèi)成員:此段如果為空,則代表該組只有一個(gè)用戶来累,也就是與組名相同的用戶砚作。如果有值,則說(shuō)明此組中含有與該值相同的用戶嘹锁,也就是說(shuō)此組是該用戶的附屬組葫录。
我們可以看到圖中mail分組的第4段有值為postfix,也就是postfix用戶應(yīng)該有倆個(gè)分組,一個(gè)初始組和一個(gè)附屬組领猾,我們執(zhí)行以下命令驗(yàn)證
[root@002 home]# groups postfix
postfix : postfix mail
密碼文件介紹
用戶密碼文件shadow和組密碼文件gshadow的權(quán)限都是000米同,所有其他用戶是不能查看的骇扇,只有root用戶才可以查看,root用戶也是不能修改該文件的面粮。
[root@002 ~]# ll /etc/gshadow
---------- 1 root root 457 Feb 21 18:03 /etc/gshadow
[root@002 ~]# ll /etc/shadow
---------- 1 root root 933 Feb 21 18:03 /etc/shadow
查看當(dāng)前登錄用戶
使用whoami
命令查看少孝。
[root@002 ~]# whoami
root
查看當(dāng)前用戶所在分組
- 直接使用
groups
命令,可以查看當(dāng)前登錄用戶的所有組(初始組和所屬組)
[db@002 ~]$ groups
root
- 使用
groups userName
命令來(lái)查看指定用戶的所有組(初始組和所屬組)。
[root@002 xiaoyu]# groups postfix
postfix : postfix mail
- 使用
id
命令查看當(dāng)前登錄用戶的所有組(初始組和所屬組)熬苍。
[db@002 ~]$ id
uid=1002(db) gid=0(root) groups=0(root)
- 使用
id username
來(lái)查看指定當(dāng)前用戶的所有組(初始組和所屬組)稍走。
[db@002 ~]$ id postfix
uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail)
postfix用戶有倆個(gè)所屬組postfix和mail。由此可見(jiàn)柴底,uid是指用戶id(用戶名稱)婿脸,gid是指初始組id(初始組名稱),groups是指包括初始組在內(nèi)的所有組id(所有組名稱)
查看組內(nèi)的所有成員
我們知道了/etc/group文件的第四段為組內(nèi)成員
柄驻,所有我們可以通過(guò)grep
來(lái)匹配相關(guān)組狐树。比如查詢mail組內(nèi)的所有成員,命令如下鸿脓,可以看到mail組內(nèi)有mail,postfix和tom3個(gè)用戶褪迟。
[db@002 ~]$ cat /etc/group | grep mail
mail:x:12:postfix,tom
上面是一種方法,我們也可以直接使用命令來(lái)查看答憔。
groupmems -l -g groupname
添加普通用戶并設(shè)置密碼
添加用戶只能root用戶來(lái)添加,普通用戶沒(méi)有權(quán)限掀抹,添加用戶有倆種方式
- useradd userName
- adduser userName
在centos系統(tǒng)下虐拓,這倆種方式?jīng)]有區(qū)別,都會(huì)在/home下自動(dòng)創(chuàng)建與用戶名同名的用戶目錄傲武,且都是需要使用passwd userName
命令來(lái)設(shè)置用戶密碼的蓉驹,只有設(shè)置完密碼后才可以正常登錄。
在unbantu系統(tǒng)下揪利,這倆種方式是有區(qū)別的态兴,使用useradd userName命令
不會(huì)在/home下自動(dòng)創(chuàng)建與用戶名同名的用戶目錄,且不會(huì)自動(dòng)選擇shell版本疟位,后續(xù)也是需要使用passwd username來(lái)設(shè)置密碼的
瞻润。而使用adduser userName
命令的話是會(huì)在/home目錄下自動(dòng)創(chuàng)建與用戶名同名的用戶目錄,也會(huì)自動(dòng)選擇shell版本甜刻,且會(huì)自動(dòng)提示輸入用戶密碼绍撞,對(duì)用戶比較友好,后續(xù)不需要在使用passwd來(lái)設(shè)置密碼得院。
創(chuàng)建/修改用戶密碼
passwd username
刪除用戶
刪除用戶傻铣,并不會(huì)刪除用戶相關(guān)的文件
userdel userName
刪除用戶且一起刪除家目錄
userdel -r userName
添加新組
groupadd groupname
刪除組
groupdel groupname
組內(nèi)新增用戶(用戶增加附屬組)
groupmems -a username -g groupname
groupmems介紹
格式如下:
groupmems [opentions] [action]
參數(shù)如下:
-g 指定組(只有root可以使用)
-a 指定用戶加入組
-d 從組中刪除該用戶
-p 從組中清楚所有成員
-l 顯示組成員列表
- groupmems -l -g root
此命令表示查看root組中存在的成員,成員不包括與組名同名的用戶祥绞。 - groupmems -a Father -g root
此命令表示將Father用戶加入root組中非洲。
權(quán)限
linux中每個(gè)文件都是有權(quán)限的鸭限。每個(gè)文件都有自己的所屬用戶和所屬組,且擁有所屬用戶權(quán)限两踏,所屬組權(quán)限和其他權(quán)限3種败京。
權(quán)限一般分為讀,寫(xiě)缆瓣,執(zhí)行3種喧枷,通過(guò)這樣的機(jī)制來(lái)限制哪些用戶或用戶組可以對(duì)特定文件進(jìn)行相應(yīng)的操作。
權(quán)限 | 對(duì)文件的影響 | 對(duì)目錄的影響 |
---|---|---|
r(讀) | 可讀取文件內(nèi)容 | 可列出目錄中的文件(ls ll) |
w(寫(xiě)) | 可修改文件內(nèi)容 | 可創(chuàng)建或刪除目錄中的文件 |
x(執(zhí)行) | 可將文件做為命令執(zhí)行 | 可進(jìn)入目錄(cd) |
目錄有x權(quán)限才可以cd進(jìn)入該目錄弓坞。目錄有r權(quán)限才能在該目錄中使用ll或者ls查看目錄隧甚。一個(gè)目錄中的文件能否被刪除或者創(chuàng)建取決于該目錄是否有w權(quán)限。
執(zhí)行l(wèi)l命令后顯示如下,我們解讀一下
drwxr-xr-- 2 xiaoyu xiaoyu 4096 Feb 24 14:11 xiaoyu
從左到右發(fā)現(xiàn)一共有7段
- 權(quán)限:該段一共有10位渡冻。第一位如果是
d
戚扳,則說(shuō)明該文件為目錄,如果是-
則說(shuō)明是文件族吻。剩余9位3位一組帽借,分為3組,分別對(duì)應(yīng)所屬用戶權(quán)限
超歌,所屬組權(quán)限
砍艾,其他權(quán)限
∥【伲可以看出用戶權(quán)限為rwx,二進(jìn)制表示為7
脆荷。組權(quán)限為r-x,二進(jìn)制表示為5。其他權(quán)限為r--,二進(jìn)制表示為4
懊悯,組合一起該文件的權(quán)限就是754
蜓谋。 - 連接數(shù)
- 所屬用戶:表示該文件的所屬用戶是xiaoyu
- 所屬分組:表示該文件的所屬分組是xiaoyu
- 文件大小
- 文件的最后修改時(shí)間
- 文件名或者目錄名
現(xiàn)在這個(gè)文件的所屬者是xiaoyu,所屬分組是xiaoyu。
當(dāng)前用戶
如果是xiaoyu的話炭分,也就是具有所屬用戶權(quán)限
桃焕,具有對(duì)該文件的rwx權(quán)限。如果當(dāng)前用戶不是xiaoyu的話捧毛,在判斷當(dāng)前用戶是否屬于xiaoyu分組观堂,如果屬于xiaoyu分組,也就是具有
所屬組權(quán)限
呀忧,則具有對(duì)該文件的r-x權(quán)限型将。如果當(dāng)前用戶即不是xiaoyu用戶,也不屬于xiaoyu分組的話荐虐,也就是具有
其他權(quán)限
七兜,則具有對(duì)文件的r--權(quán)限。
命令
- chmod
該命令用于修改文件的用戶權(quán)限福扬。
比如文件ll如下
drwx------ 2 test test 4096 Feb 19 14:47 test
然后執(zhí)行如下命令
chmode 755 test.php
test文件的權(quán)限改為
drwxr-xr-x 2 test test 4096 Feb 19 14:47 test
常用的參數(shù)為-R
,常用于修改目錄權(quán)限腕铸,該參數(shù)表示為該目錄以及目錄下的所有子文件都修改為相同的權(quán)限惜犀。
chmod -R 777 test
- chown
該命令用于修改文件的所屬用戶和所屬組
比如文件ll如下
drwx------ 2 test test 4096 Feb 19 14:47 test
然后執(zhí)行如下命令
chown xiaoyu:xiaoyu test
再次查看test文件
drwx------ 2 xiaoyu xiaoyu 4096 Feb 19 14:47 test
常用的參數(shù)為-R
,常用于修改目錄,該參數(shù)表示為該目錄以及目錄下的所有子文件都修改為相同的用戶及用戶組狠裹。
chmod -R 777 test
切換用戶
想切換到root用戶虽界,直接使用su命令即可
su root
總結(jié)
- 一個(gè)用戶可以加入不同的組,但是有且只有一個(gè)初始組涛菠。
- 一個(gè)用戶的權(quán)限為他所屬的多個(gè)組的累加權(quán)限 莉御。假設(shè)user賬戶附加組group1 = write group2 = read ,那么user就擁有 write + read權(quán)限俗冻。
- 組和用戶的關(guān)系是多對(duì)多 一個(gè)用戶可以有多個(gè)組礁叔,一個(gè)組也可以有多個(gè)用戶。