linux入門(mén)系列9--用戶管理及文件權(quán)限控制

? 前面文章分享了Linux下常用命令以及Shell編程相關(guān)知識(shí)晚缩,本節(jié)繼續(xù)學(xué)習(xí)Linux用戶管理及文件權(quán)限控制笼才。

? Linux是多用戶多任務(wù)操作系統(tǒng),具有很好的穩(wěn)定性和安全性络凿。既然是多用戶骡送,那就意味著多個(gè)用戶可以同時(shí)使用同一個(gè)Linux操作系統(tǒng),因此就會(huì)涉及用戶的添加絮记、修改摔踱、刪除等管理工作以及權(quán)限分配問(wèn)題;平時(shí)使用Linux系統(tǒng)一般是用于信息處理怨愤,而文件是信息載體派敷,因此也需要掌握文件相關(guān)的操作和權(quán)限。

? 相信大家平時(shí)在使用windows操作系統(tǒng)時(shí)撰洗,為了不讓別人輕易看到某些敏感文件篮愉,而把文件設(shè)置為隱藏文件,Linux下是否也能實(shí)現(xiàn)同樣的操作差导?是否能通過(guò)隱藏權(quán)限讓黑客最多只能查看某些日志文件但不能進(jìn)行修改和刪除操作试躏?是否能夠?qū)δ硞€(gè)用戶或某個(gè)用戶組進(jìn)行特殊的權(quán)限設(shè)置,讓其只有能滿足工作需求的最小權(quán)限设褐,從而降低安全風(fēng)險(xiǎn)颠蕴?本篇文章將逐一解決這些疑問(wèn)。

一助析、用戶及用戶組管理

1.1 用戶相關(guān)命令

? 針對(duì)初學(xué)者犀被,在日常工作中,一般都是領(lǐng)導(dǎo)分配一個(gè)擁有一定權(quán)限的賬號(hào)外冀,然后開(kāi)展各項(xiàng)工作寡键,不會(huì)開(kāi)放很高的權(quán)限。但初學(xué)階段锥惋,正如前面系列文章所演示昌腰,都是直接用root賬戶進(jìn)行操作开伏,這樣的目的是減少權(quán)限帶來(lái)的干擾,讓我們更專注于相應(yīng)知識(shí)點(diǎn)的學(xué)習(xí)遭商。但是在生產(chǎn)環(huán)境中建議慎用root固灵,因?yàn)闄?quán)限太大,控制不當(dāng)會(huì)有安全隱患劫流。

1.1.1 who命令

? who命令用于查看登錄用戶信息巫玻,包括:who、whoami祠汇、who am i仍秤。

  • whoami

功能描述:查看當(dāng)前登錄用戶的用戶名

案例:

[root@heimatengyun test]# whoami
root
[root@heimatengyun test]# su - test
Last login: Sat Nov 30 22:55:38 CST 2019 on pts/0
[test@heimatengyun ~]$ whoami
test
[test@heimatengyun ~]$ exit
logout

可以看到,切換用戶后可很,相應(yīng)的結(jié)果發(fā)生變化诗力,只顯示當(dāng)前登錄的用戶。

  • who am i

功能描述:顯示最初登錄時(shí)用的用戶名(無(wú)論切換幾次)

案例:

[root@heimatengyun test]# who am i
root     pts/0        2019-12-17 22:23 (192.168.78.1)
[root@heimatengyun test]# su - test
Last login: Tue Dec 17 22:31:09 CST 2019 on pts/0
[test@heimatengyun ~]$ who am i
root     pts/0        2019-12-17 22:23 (192.168.78.1)
[test@heimatengyun ~]$ exit
logout

? 可以看到我抠,切換后用戶名還是顯示最開(kāi)始登錄時(shí)的用戶名稱苇本。

  • who

功能描述:顯示當(dāng)前有哪些用戶真正登錄到了本臺(tái)機(jī)器(不會(huì)顯示那些用su命令切換的用戶)

案例:

[root@heimatengyun test]# who
(unknown) :0           2019-12-17 22:22 (:0)
root     pts/0        2019-12-17 22:23 (192.168.78.1)
[root@heimatengyun test]# su - test
Last login: Tue Dec 17 22:34:44 CST 2019 on pts/0
[test@heimatengyun ~]$ who
(unknown) :0           2019-12-17 22:22 (:0)
root     pts/0        2019-12-17 22:23 (192.168.78.1)
[test@heimatengyun ~]$ exit
logout

? 可以看到用su命令切換用戶后,顯示結(jié)果中并咩有test用戶菜拓,因此顯示的知識(shí)真正登錄到本機(jī)的所有用戶瓣窄。

1.1.2 id命令

語(yǔ)法:id 用戶名

功能描述:判斷用戶是否存在

案例:

[root@heimatengyun test]# id test
uid=1000(test) gid=1000(test) groups=1000(test)
[root@heimatengyun test]# id lover
id: lover: no such user

? 如果用戶存在返回用戶信息,如果用戶不存在則提示no such user

1.1.3 useradd命令

語(yǔ)法:

? useradd [選項(xiàng)] 用戶名

功能描述:

? 添加新用戶纳鼎,默認(rèn)的用戶家目錄存放在/home目錄中俺夕,默認(rèn)的Shell解釋器為 /bin/bash,同時(shí)會(huì)默認(rèn)創(chuàng)建一個(gè)與該用戶同名的基本用戶組。在創(chuàng)建用戶時(shí)贱鄙,通過(guò)以下參數(shù)可以修改默認(rèn)設(shè)置劝贸。

選項(xiàng):

參數(shù) 作用
-d home-dir,指定用戶的家目錄逗宁,默認(rèn)為/home/username
-e expiredate悬荣,賬戶到期時(shí)間,格式:YYYY-MM-DD
-u uid疙剑,指定用戶默認(rèn)的UID
-g gid氯迂,指定初始用戶基本組,組必須已存在
-G groups言缤,指定一個(gè)或多個(gè)擴(kuò)展用戶組
-N no-user-group嚼蚀,不創(chuàng)建與用戶同名的基本用戶組
-s shell,指定用戶默認(rèn)的Shell解釋器

案例:

(1)采用默認(rèn)參數(shù)創(chuàng)建用戶

[root@heimatengyun test]# id lover
id: lover: no such user
[root@heimatengyun test]# useradd lover
[root@heimatengyun test]# id lover
uid=1001(lover) gid=1001(lover) groups=1001(lover)
[root@heimatengyun ~]# cat /etc/passwd
...省略部分內(nèi)容
lover:x:1001:1001::/home/lover:/bin/bash

創(chuàng)建的用戶保存在/etc/passwd文件中管挟,可以通過(guò)此文件查看用戶信息轿曙。

一行為一條用戶記錄,分為7個(gè)字段,每個(gè)字段用冒號(hào)分隔导帝。每個(gè)字段分別對(duì)應(yīng):

用戶名:密碼:UID:GID:注釋:家目錄:偽用戶

(2)創(chuàng)建用戶指定家目錄、UID以及Shell解釋器

[root@heimatengyun ~]# useradd -d /home/heima -u 9988 -s /sbin/nologin heimage
[root@heimatengyun ~]# id heimage
uid=9988(heimage) gid=9988(heimage) groups=9988(heimage)
[root@heimatengyun ~]# ls /home/
heima  test

/sbin/nologin是終端解釋器中的一員您单,但是與Bash解釋器不同斋荞,被設(shè)置為nologin后,用戶將不能登錄到系統(tǒng)中虐秦。

RHEL7(Centos7)系統(tǒng)中平酿,用戶身份有3種:管理員、系統(tǒng)用戶悦陋、普通用戶蜈彼。系統(tǒng)的管理員用戶UID為0;系統(tǒng)用戶UID 為 1~999俺驶, Linux 系統(tǒng)為了避免因某個(gè)服務(wù)程序出現(xiàn)漏洞而被黑客提 權(quán)至整臺(tái)服務(wù)器幸逆,默認(rèn)服務(wù)程序會(huì)有獨(dú)立的系統(tǒng)用戶負(fù)責(zé)運(yùn)行,進(jìn)而有效控制被破壞 范圍暮现;普通用戶 UID 從 1000 開(kāi)始秉颗,是由管理員創(chuàng)建的用于日常工作的用戶。

需要注意的是送矩,UID 是不能沖突的,而且管理員創(chuàng)建的普通用戶的 UID 默認(rèn)是從 1000 開(kāi)始的(即使前面有閑置的號(hào)碼)哪替。

另外栋荸,在 Linux 系統(tǒng)中創(chuàng)建每個(gè)用戶時(shí),將自動(dòng)創(chuàng)建一個(gè)與其同名的基本用戶組凭舶,而且 這個(gè)基本用戶組只有該用戶一個(gè)人晌块。如果該用戶以后被歸納入其他用戶組,則這個(gè)其他用戶 組稱之為擴(kuò)展用戶組帅霜。一個(gè)用戶只有一個(gè)基本用戶組匆背,但是可以有多個(gè)擴(kuò)展用戶組,從而滿 足日常的工作需要身冀。

1.1.4 passwd命令

語(yǔ)法:

? passwd [選項(xiàng)] 用戶名

功能描述:

? 設(shè)置或修改用戶密碼钝尸、過(guò)期時(shí)間、認(rèn)證信息等搂根。

選項(xiàng):

參數(shù) 作用
-l lock珍促,鎖定用戶,禁止登錄
-u unlock剩愧,解除鎖定猪叙,允許用戶登錄
-e expire,強(qiáng)制用戶在下次登錄時(shí)修改密碼
-S status,顯示yoghurt的密碼是否被鎖定穴翩,以及密碼采用的加密算法名稱

案例:

(1)修改其他賬戶密碼

[root@heimatengyun test]# passwd lover
Changing password for user lover.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

? 修改的密碼不能太簡(jiǎn)單犬第,否則修改不成功。修改成功后芒帕,即可使用賬戶進(jìn)行登錄歉嗓。在界面中登錄后,即可查看當(dāng)前登錄用戶

[root@heimatengyun test]# who
lover    :0           2019-12-17 23:05 (:0)
root     pts/0        2019-12-17 22:23 (192.168.78.1)

新建一個(gè)用戶副签,如果沒(méi)有設(shè)置密碼遥椿,則用戶無(wú)法直接登錄,只能通過(guò)root用戶使用su命令切換淆储。因此冠场,一般新建用戶就會(huì)同時(shí)設(shè)置密碼。也就是說(shuō)useradd和passed命令一般是一起使用本砰。

? 無(wú)論是普通用戶還是超級(jí)權(quán)限用戶都可以運(yùn)行passwd命令碴裙,但是如果是普通用戶則只能修改自己的密碼。配合選項(xiàng)參數(shù)可以實(shí)現(xiàn)更豐富的功能点额,具體用法可以通過(guò)man命令進(jìn)行查看舔株。

(2)鎖定及解鎖賬戶

假設(shè)你部門(mén)有一位同事要休假半年,那么可以通過(guò)-l參數(shù)鎖定用戶还棱,禁止其登錄载慈,等休假完畢回來(lái)上班后再使用-u參數(shù)將其解鎖。這樣避免了刪除用戶珍手、添加用戶帶來(lái)的麻煩同時(shí)也保證了這段時(shí)間內(nèi)系統(tǒng)的安全办铡。

[root@heimatengyun ~]# passwd -S test
test PS 2019-11-27 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@heimatengyun ~]# passwd -l test
Locking password for user test.
passwd: Success
[root@heimatengyun ~]# passwd -S test
test LK 2019-11-27 0 99999 7 -1 (Password locked.)
[root@heimatengyun ~]# passwd -u test
Unlocking password for user test.
passwd: Success
[root@heimatengyun ~]# passwd -S test
test PS 2019-11-27 0 99999 7 -1 (Password set, SHA512 crypt.)
1.1.5 usermod命令

語(yǔ)法:

? usermod [選項(xiàng)] 用戶名

功能描述:

? 修改用戶信息

Linux系統(tǒng)一切皆文件,修改用戶也就是修改配置文件琳要。用戶信息保存在/etc/passwd文件中寡具,可以直接采用文本編輯器修改也可以通過(guò)usermod命令進(jìn)行修改。

選項(xiàng):

參數(shù) 作用
-e expiredate,賬號(hào)到期時(shí)間稚补,格式為YYYY-MM-DD
-g gid,變更所屬用戶組
-G groups,變更擴(kuò)展用戶組
-L lock,鎖定用戶禁止其登錄
-U unlock,解鎖用戶童叠,允許其登錄
-u uid,修改用戶的UID

案例:

? 通過(guò)-G參數(shù)將上邊創(chuàng)建的lover用戶加入到root用戶組

[root@heimatengyun test]# id lover
uid=1001(lover) gid=1001(lover) groups=1001(lover)
[root@heimatengyun test]# usermod -G root lover
[root@heimatengyun test]# id lover             
uid=1001(lover) gid=1001(lover) groups=1001(lover),0(root)
1.1.5 userdel命令

語(yǔ)法:

? userdel [選項(xiàng)] 用戶名

功能描述:

? 當(dāng)用戶不會(huì)再登錄系統(tǒng),則使用此命令刪除用戶

選項(xiàng):

參數(shù) 作用
-f force课幕,強(qiáng)制刪除
-r remove厦坛,刪除用戶及用戶家目錄

案例:

? 刪除之前創(chuàng)建的lover用戶,并刪除目錄

[root@heimatengyun home]# pwd
/home
[root@heimatengyun home]# ls
lover  test
[root@heimatengyun home]# userdel -r lover
userdel: user lover is currently used by process 4419
[root@heimatengyun home]# userdel -rf lover
[root@heimatengyun home]# ls
test

? 刪除用戶時(shí)默認(rèn)會(huì)保留用戶主目錄乍惊,添加-r參數(shù)則會(huì)刪除home目錄下用戶主目錄粪般。-f表示強(qiáng)制刪除,由于前文通過(guò)界面上登錄了lover用戶污桦,所以提示有進(jìn)程在使用亩歹,通過(guò)-f強(qiáng)制刪除用戶匙监。

1.2 用戶組相關(guān)命令

1.2.1 groupadd命令

語(yǔ)法:

? groupadd [選項(xiàng)] 組名

功能描述:

? 添加用戶組,有時(shí)候?yàn)榱烁咝У墓芾硐到y(tǒng)中各個(gè)用戶的權(quán)限小作,經(jīng)常會(huì)將多個(gè)用戶添加到一個(gè)指定組中亭姥。

案例:

添加heima用戶組并查看組信息

[root@heimatengyun ~]# groupadd heima
[root@heimatengyun ~]# cat /etc/group
...省略部分內(nèi)容
test:x:1000:test
heima:x:1001:

/etc/group文件包含所有組信息,可以查看到剛才添加的heima用戶組顾稀。

/etc/group文件每行表示一條記錄达罗,標(biāo)識(shí)一個(gè)用戶組。每條記錄分為四個(gè)字段静秆,用冒號(hào)分割粮揉。第一字段:用戶組名稱;第二字段:用戶組密碼抚笔;第三字段:GID扶认;第四字段:用戶列表,每個(gè)用戶之間用逗號(hào)分隔殊橙,本字段可以為空

1.2.2 groupmod命令

語(yǔ)法:

? groupmod [選項(xiàng)] 新組名 老組名

功能描述:

選項(xiàng):

參數(shù) 作用
-n 修改組名稱

案例:

(1)修改heima組名稱heimage

[root@heimatengyun ~]# groupmod -n heimage heima
[root@heimatengyun ~]# cat /etc/group
...省略部分內(nèi)容
test:x:1000:test
heimage:x:1001:

(2)新建并添加用戶到heimage組

[root@heimatengyun ~]# cat /etc/group
...省略部分內(nèi)容
test:x:1000:test
heimage:x:1001:
[root@heimatengyun ~]# useradd -g 1001 heimagege
[root@heimatengyun ~]# id heimagege
uid=1001(heimagege) gid=1001(heimage) groups=1001(heimage)
[root@heimatengyun ~]# cat /etc/group
...省略部分內(nèi)容
test:x:1000:test
heimage:x:1001:
[root@heimatengyun ~]# cat /etc/passwd
...省略部分內(nèi)容
heimagege:x:1001:1001::/home/heimagege:/bin/bash
1.2.3 groupdel命令

語(yǔ)法:

? groupdel 組名

功能描述:

? 刪除組辐宾,前提是組內(nèi)沒(méi)有用戶才能刪除

案例:

(1)刪除用戶組

[root@heimatengyun ~]# groupdel heimage
groupdel: cannot remove the primary group of user 'heimagege'
[root@heimatengyun ~]# userdel heimagege
[root@heimatengyun ~]# groupdel heimage 

(2)查看組內(nèi)用戶

如案例1所示,如果組內(nèi)有用戶則無(wú)法直接刪除組膨蛮〉疲可以通過(guò)/etc/group文件匹配對(duì)應(yīng)的組名查看對(duì)應(yīng)組內(nèi)有哪些用戶

[root@heimatengyun ~]# grep 'test' /etc/group
test:x:1000:test

查找之前建的test組內(nèi)有哪些用戶,第四個(gè)字段即為該組內(nèi)所有用戶列表敞葛。

二誉察、文件及相關(guān)權(quán)限

2.1 文件權(quán)限

2.1.1 ll命令查看文件權(quán)限

Linux中一切皆文件,但是每個(gè)文件類型可能不同惹谐,如何區(qū)分文件類型呢持偏?每個(gè)文件都有所有者和所有組以及其他人對(duì)文件擁有的讀、寫(xiě)豺鼻、執(zhí)行權(quán)限,如何查看文件的這些權(quán)限呢款慨?

當(dāng)然是通過(guò)ls或ll命令就可以查看

[root@heimatengyun test]# ll
-rw-r--r--. 1 root root   9 Nov 30 20:43 test1.txt
drwxr-xr-x. 2 root root   6 Dec 20 11:32 test1

ll命令顯示結(jié)果詳解

file

以test1.txt文件為例儒飒,各部分代表的含義依次為如下

  • 文件類型:
    第一個(gè)字符“-”表示文件類型,此處表示test1.txt是一個(gè)普通文件檩奠。不同文件類型用不同字符表示桩了,文件類型與字符對(duì)應(yīng)關(guān)系如下
符號(hào) 文件類型
- 普通文件
d 目錄文件
l 連接文件
b 塊設(shè)備文件
c 字符設(shè)備文件
p 管理文件
s 套接字文件
  • 文件權(quán)限:

    “rw-r--r--.”,可以分為四段,前三段每三位為一段埠戳,最后一個(gè)點(diǎn)單獨(dú)為一段井誉。第一段rw-表示文件創(chuàng)建者/所有者對(duì)該文件所具有的權(quán)限,第二段r--表示創(chuàng)建者/所有者所在的組的其他用戶所具有的權(quán)限整胃,第三段r--表示其他組的其他用戶所具有的權(quán)限颗圣。第四段.

字符 權(quán)限類型
r read,讀取權(quán)限,數(shù)字表示為4在岂。對(duì)文件而言奔则,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō)蔽午,具有瀏覽目錄的權(quán)限
w write易茬,寫(xiě)入權(quán)限,數(shù)字表示為2及老。對(duì)文件而言抽莱,具有新增、修改文件內(nèi)容的權(quán)限骄恶;對(duì)目錄來(lái)說(shuō)食铐,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限
x execute叠蝇,執(zhí)行權(quán)限璃岳,數(shù)字表示為1。對(duì)文件而言悔捶,具有執(zhí)行文件的權(quán)限铃慷;對(duì)目錄來(lái)說(shuō),該用戶具有進(jìn)入目錄的權(quán)限蜕该。
s或S SUID,Set UID犁柜,可執(zhí)行的文件搭配這個(gè)權(quán)限,便能得到特權(quán)堂淡,任意存取該文件的所有者能使用的全部系統(tǒng)資源馋缅。請(qǐng)注意具備SUID權(quán)限的文件,黑客經(jīng)常利用這種權(quán)限绢淀,以SUID配上root帳號(hào)擁有者萤悴,無(wú)聲無(wú)息地在系統(tǒng)中開(kāi)扇后門(mén),供日后進(jìn)出使用皆的。
t或T sticky覆履,/tmp和 /var/tmp目錄供所有用戶暫時(shí)存取文件,亦即每位用戶皆擁有完整的權(quán)限進(jìn)入該目錄费薄,去瀏覽硝全、刪除和移動(dòng)文件。
.或+ 如果為+表示設(shè)置了ACL

此處test1.txt文件楞抡,其創(chuàng)建者/所有者具有可讀可寫(xiě)的權(quán)限伟众,其創(chuàng)建者/所有者所在的組的其他用戶具有可讀權(quán)限,其他組的其他用戶則具有可讀權(quán)限召廷。

文件權(quán)限除了可以使用rwx表示凳厢,也可以用數(shù)字表示账胧。如777代表:rwxrwxrwx(r=4,w=2数初,x=1找爱,4+2+1=7=rwx),由此可以看出數(shù)字表示會(huì)簡(jiǎn)潔一些泡孩。

  • 連接個(gè)數(shù)

    對(duì)于文件车摄,表示指向它的鏈接文件的個(gè)數(shù);對(duì)于目錄文件仑鸥,表示它的第一級(jí)子目錄的個(gè)數(shù)吮播。注意此處看到的值要減2才等于該目錄下的子目錄的實(shí)際個(gè)數(shù),比如test1目錄下其實(shí)并沒(méi)有任何文件和目錄眼俊,但此處顯示為2意狠,這是因?yàn)橐由?目錄和..目錄。在linux下疮胖,.目錄表示當(dāng)前目錄环戈,..目錄表示上一級(jí)目錄。

  • 所有者和所屬組

    表示該文件的所有者/創(chuàng)建者(owner)及其所在的組(group)澎灸。

  • 文件大小

    如果是文件院塞,則表示該文件的大小,單位為字節(jié)性昭。如果是目錄拦止,則表示該目錄符所占的大小,并不表示該目錄下所有文件的大小糜颠。

  • 修改日期

    該文件最后修改的日期時(shí)間汹族。

  • 文件名稱

    文件或目錄的名稱。

不同的shell窗口其兴,還能用顏色區(qū)分文件的屬性顶瞒,能一目了然通過(guò)顏色區(qū)分文件類型,普通文件元旬、可執(zhí)行文件榴徐、壓縮文件、目錄法绵、連接文件都有不同的顏色區(qū)分箕速。不同工具可以根據(jù)自己需要進(jìn)行顏色方案的修改和配置酪碘,這里就不說(shuō)了朋譬。

2.1.2 文件權(quán)限設(shè)置
2.1.2.1 chmod命令

語(yǔ)法:

? chmod [選項(xiàng)] [ugoa] [+-=] [rwx或數(shù)字] 文件或目錄

選項(xiàng)參數(shù):

選項(xiàng) 含義
-R recursive,遞歸執(zhí)行
屬性符號(hào) 作用
u 文件擁有者
g 文件所屬組
o 文件所屬組外的其他用戶
a 所有用戶兴垦,相當(dāng)于是ugo同時(shí)使用
操作符號(hào) 作用
+ 添加權(quán)限
- 刪除權(quán)限
= 設(shè)置權(quán)限徙赢,未指定的部分將被清除
權(quán)限符號(hào) 作用
r 對(duì)于文件有查看權(quán)限字柠,對(duì)于目錄可以列出目錄內(nèi)容
w 對(duì)于文件有修改權(quán)限,對(duì)于目錄可以在目錄中創(chuàng)建和刪除
x 對(duì)于文件有執(zhí)行權(quán)限狡赐,對(duì)于目錄可以進(jìn)入目錄

功能描述:

? 改變文件或目錄權(quán)限

案例:

(1)分別通過(guò)ugoa添加文件的可執(zhí)行權(quán)限

[root@heimatengyun test1]# ll
total 8
-rw-r--r--. 1 root root 6 Dec 20 14:52 hello
-rw-r--r--. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod u+x hello
[root@heimatengyun test1]# ll
total 8
-rwxr--r--. 1 root root 6 Dec 20 14:52 hello
-rw-r--r--. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod g+x hello
[root@heimatengyun test1]# ll
total 8
-rwxr-xr--. 1 root root 6 Dec 20 14:52 hello
-rw-r--r--. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod o+x hello
[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rw-r--r--. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod a+x test
[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxr-xr-x. 1 root root 6 Dec 20 14:51 test

從示例可以看到可以通過(guò)u窑业、g、o分別對(duì)不同部分賦予權(quán)限枕屉,也可以直接用o一次性賦值常柄。根據(jù)實(shí)際需要靈活選擇即可。

(2)移除所有者或所屬組之外其他用戶的執(zhí)行權(quán)限

[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxr-xr-x. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod o-x test
[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxr-xr--. 1 root root 6 Dec 20 14:51 test

(3)用數(shù)字設(shè)置權(quán)限

[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxr-xr--. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod 777 test
[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 root root 6 Dec 20 14:51 test

(4)通過(guò)=號(hào)設(shè)置權(quán)限

[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chmod o=w test
[root@heimatengyun test1]# ll
total 8
-rwxr-xr-x. 1 root root 6 Dec 20 14:52 hello
-rwxrwx-w-. 1 root root 6 Dec 20 14:51 test

(5)改變目錄下所有文件

[root@heimatengyun test]# chmod -R 777 test1
[root@heimatengyun test]# ll
drwxrwxrwx. 2 root root  29 Dec 20 14:52 test1
[root@heimatengyun test]# cd test1/
[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 root root 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 root root 6 Dec 20 14:51 test

可以看到內(nèi)部的所有文件權(quán)限一次性被修改搀擂。

2.1.2.2 chown命令

語(yǔ)法:

? chown [選項(xiàng)] 最終用戶[:最終所屬組] 文件或目錄

參數(shù):

參數(shù) 作用
-R 遞歸修改

功能描述:

? 改變文件或目錄的所有者

案例:

(1)修改文件所有者

[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 root root 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 root root 6 Dec 20 14:51 test
[root@heimatengyun test1]# chown test test
[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 root root 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 test root 6 Dec 20 14:51 test

(2)遞歸修改目錄及其下所有文件所有者

[root@heimatengyun test]# chown -R test:test /root/test/test1
[root@heimatengyun test]# ll
drwxrwxrwx. 2 test test  29 Dec 20 14:52 test1
[root@heimatengyun test]# cd test1/
[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 test test 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 test test 6 Dec 20 14:51 test

這種用法在修改所有者時(shí)同時(shí)修改了所屬組西潘。注意,修改的當(dāng)前目錄及其下的所有文件都會(huì)修改哨颂,上級(jí)目錄不會(huì)影響喷市。如此處的/root/test目錄不會(huì)變化,只會(huì)影響test1目錄威恼。

2.1.2.3 chgrp命令

語(yǔ)法:

? chgrp 最終用戶組 文件或目錄

功能描述:

? 改變文件或目錄的所屬組

案例:

[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 test test 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 test test 6 Dec 20 14:51 test
[root@heimatengyun test1]# chgrp root test
[root@heimatengyun test1]# ll
total 8
-rwxrwxrwx. 1 test test 6 Dec 20 14:52 hello
-rwxrwxrwx. 1 test root 6 Dec 20 14:51 test

2.2 文件特殊權(quán)限

? 單純?cè)O(shè)置文件的 rwx 一般權(quán)限無(wú)法滿足我們對(duì)安全和靈活性的需求品姓,因此便有了 SUID、SGID 與 SBIT 的特殊權(quán)限位箫措。

? 這是一種對(duì)文件權(quán)限進(jìn)行設(shè)置的特殊功 能腹备,可以與一般權(quán)限同時(shí)使用,以彌補(bǔ)一般權(quán)限不能實(shí)現(xiàn)的功能蒂破。

2.2.1 SUID

? 針對(duì)二進(jìn)制程序設(shè)置的特殊權(quán)限馏谨,可以讓二進(jìn)制程序的執(zhí)行者臨時(shí)擁有屬主的權(quán)限(僅對(duì)擁有執(zhí)行權(quán)限的二進(jìn)制程序有效)。SUID是一種有條件的附迷、臨時(shí)的特殊權(quán)限授權(quán)方法惧互,下文以passwd命令進(jìn)行介紹。

? 還記得1.1.4講的passwd命令嗎喇伯?該命令用于修改用戶密碼喊儡,所有用戶都可以執(zhí)行 passwd 命 令來(lái)修改自己的用戶密碼,而用戶密碼保存在/etc/shadow 文件中稻据,執(zhí)行passwd命令本質(zhì)就是修改shadow文件艾猜。

? 但仔細(xì)查看這個(gè)文件就會(huì)發(fā) 現(xiàn)它的默認(rèn)權(quán)限是 000,也就是說(shuō)除了 root 管理員以外捻悯,所有用戶都沒(méi)有查看或編輯該文件的權(quán)限匆赃。

[root@heimatengyun test1]# ll /etc/shadow
----------. 1 root root 1157 Dec 20 00:06 /etc/shadow

? 既然沒(méi)有此密碼文件讀寫(xiě)權(quán)限,那為何所有用戶都可以執(zhí)行命令修改密碼呢今缚?先不急算柳,我們來(lái)看看passed命令的權(quán)限。

[root@heimatengyun test1]# ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd

? 可以看到所有者權(quán)限為rws姓言,以前講過(guò)可執(zhí)行權(quán)限為x瞬项,此處為s蔗蹋。對(duì),就是因?yàn)樗姓叩臋?quán)限由 rwx變成了rws囱淋,其中x改變成s就意味著該文件被賦予了SUID 權(quán)限猪杭。在使用 passwd 命令時(shí)如果加上 SUID 特殊權(quán)限位,就可讓普通用戶臨時(shí)獲得程序所有者的身份妥衣,把變更的密碼信息寫(xiě)入到 shadow 文件中皂吮。

說(shuō)明:設(shè)置SUID后,如果原本沒(méi)有執(zhí)行權(quán)限税手,則為S涮较,有執(zhí)行權(quán)限則為s。如rwx將變?yōu)閞ws冈止,rw-變?yōu)閞wS狂票。

設(shè)置SUID權(quán)限,就是使用之前介紹的chmod命令即可熙暴,針對(duì)命令或可執(zhí)行二進(jìn)制文件進(jìn)行設(shè)置闺属。

[root@heimatengyun test]# ll
-rwxrwxrwx. 1 root root 145 Dec  1 16:06 mypid.sh
[root@heimatengyun test]# chmod u+s mypid.sh 
[root@heimatengyun test]# ll
-rwsrwxrwx. 1 root root 145 Dec  1 16:06 mypid.sh
2.2.2 SGID

主要應(yīng)用場(chǎng)景和功能有:

(1)讓執(zhí)行者臨時(shí)擁有所屬組權(quán)限,對(duì)擁有執(zhí)行權(quán)限的二進(jìn)制程序進(jìn)行設(shè)置周霉。

(2)在某個(gè)目錄中創(chuàng)建的文件自動(dòng)繼承該目錄的用戶組掂器,只可以對(duì)目錄進(jìn)行設(shè)置。

SGID 的第一種功能是參考 SUID 而設(shè)計(jì)的俱箱,不同點(diǎn)在于執(zhí)行程序的用戶獲取的不再是文 件所有者的臨時(shí)權(quán)限国瓮,而是獲取到文件所屬組的權(quán)限。

針對(duì)第二種功能狞谱,我們知道乃摹,每個(gè)文件都有其歸屬的所有者和所屬組,當(dāng)創(chuàng)建或傳送一個(gè)文件后跟衅,這個(gè)文件就會(huì)自動(dòng)歸屬于執(zhí)行這個(gè)操作的用戶孵睬,即該用戶就是文件的所有者。

假設(shè)有這樣一種情況伶跷,需要在部門(mén)內(nèi)創(chuàng)建一個(gè)共享目錄掰读,部門(mén)內(nèi)所有人員都能讀取目錄中的內(nèi)容。如果每個(gè)人都去建立各自的文件叭莫,所有者和所屬組都是創(chuàng)建者自己蹈集,別人無(wú)法使用。SGID的出現(xiàn)就是為了解決這個(gè)問(wèn)題雇初,創(chuàng)建部門(mén)共享目錄后拢肆,在該目錄上設(shè)置 SGID 特殊權(quán)限位。這樣,部門(mén)內(nèi)的任何人員在里面創(chuàng)建的任何文件都會(huì)歸屬于該目錄的所屬組善榛,而不再是自己的基本用戶組。

SGID功能就是在某個(gè)目錄中創(chuàng)建的文件自動(dòng)繼承該目錄的用戶組呻畸,只可以對(duì)目錄進(jìn)行設(shè)置移盆。

下面演示在目錄上創(chuàng)建SGID

[root@heimatengyun test]# mkdir sgid
[root@heimatengyun test]# ll
drwxr-xr-x. 2 root root  6 Dec 20 18:11 sgid
[root@heimatengyun test]# chmod 777 sgid/
[root@heimatengyun test]# ll
drwxrwxrwx. 2 root root  6 Dec 20 18:11 sgid
[root@heimatengyun test]# chmod g+s sgid/
[root@heimatengyun test]# ll
drwxrwsrwx. 2 root root  6 Dec 20 18:11 sgid

創(chuàng)建SGID后,就可以切換到普通用戶伤为,創(chuàng)建文件咒循,觀察文件的所屬組

[root@heimatengyun test]# su - test
Last login: Fri Dec 20 17:26:36 CST 2019 on pts/0
[test@heimatengyun ~]$ cd sgid/
[test@heimatengyun sgid]$ echo 'hello'>hello
[test@heimatengyun sgid]$ ll
total 4
-rw-rw-r--. 1 test root 6 Dec 20 18:14 hello

可以看到test普通用戶創(chuàng)建的文件所屬組變?yōu)榻o上層文件夾一致屬于root,不再屬于test自己绞愚。這樣針對(duì)所屬組設(shè)置權(quán)限叙甸,其他用戶就可以實(shí)現(xiàn)操作文件。

2.2.3 SBIT

SBIT 特殊權(quán)限位可確保用戶只能刪除自己的文件位衩,而不能刪除其他用戶的文件裆蒸。當(dāng)對(duì)某個(gè)目錄設(shè)置了 SBIT 粘滯位權(quán)限后,那么該目錄中的文件就只能被其所有者執(zhí)行刪除操作了糖驴。

回到上文的例子僚祷,當(dāng)一個(gè)部門(mén)共享一個(gè)目錄后,如何避免用戶刪除其他用戶的文件呢贮缕?顯然用SBIT就可以保證用戶不能刪除別人的文件辙谜。

設(shè)置目錄SBIT,同樣用chmod命令

[root@heimatengyun test]# mkdir sbit
[root@heimatengyun test]# ll
drwxr-xr-x. 2 root root  6 Dec 20 18:26 sbit
[root@heimatengyun test]# chmod -R o+t sbit/
[root@heimatengyun test]# ll
drwxr-xr-t. 2 root root  6 Dec 20 18:26 sbit

與前面所講的 SUID 和 SGID 權(quán)限顯示方法不同感昼,當(dāng)目錄被設(shè)置 SBIT 特殊權(quán)限位后装哆,文件的其他人權(quán)限部分的 x 執(zhí)行權(quán)限就會(huì)被替換成 t 或者 T,原本有 x 執(zhí)行權(quán)限則會(huì)寫(xiě)成 t定嗓,原本沒(méi)有 x 執(zhí)行權(quán)限則會(huì)被寫(xiě)成 T蜕琴。

我們仔細(xì)觀察,就會(huì)發(fā)現(xiàn)/tmp目錄其實(shí)就是默認(rèn)設(shè)置了SBIT宵溅,它是一個(gè)共享目錄奸绷,保證用戶只能刪除自己的文件。

[root@heimatengyun /]# ll -d /tmp/
drwxrwxrwt. 15 root root 4096 Dec 20 18:30 /tmp/

創(chuàng)建新用戶并在tmp下創(chuàng)建文件层玲,驗(yàn)證用其他用戶去刪除看能否刪除号醉,答案肯定是不能刪除的惨篱。

[root@heimatengyun /]# useradd heimagege
[root@heimatengyun /]# su - heimagege
[heimagege@heimatengyun ~]$ cd /tmp/
[heimagege@heimatengyun tmp]$ echo 'heimagege'>heimagege
[heimagege@heimatengyun tmp]$ ll
-rw-rw-r--. 1 heimagege heimagege 10 Dec 20 18:34 heimagege
[root@heimatengyun /]# su - test
Last login: Fri Dec 20 18:29:10 CST 2019 on pts/0
[test@heimatengyun ~]$ cd /tmp/
[test@heimatengyun tmp]$ rm -f heimagege 
rm: cannot remove ‘heimagege’: Operation not permitted

2.3 文件隱藏屬性

? Linux 系統(tǒng)中的文件除了具備一般權(quán)限和特殊權(quán)限之外茬贵,還有一種隱藏權(quán)限,即被隱藏起 來(lái)的權(quán)限曙蒸,默認(rèn)情況下不能直接被用戶發(fā)覺(jué)润绵。當(dāng)你新接手一臺(tái)服務(wù)器线椰,碰到明明權(quán)限充足但卻無(wú)法刪除某個(gè)文件的情況,或者僅能在日志文件中追加內(nèi)容而不能修改或刪除內(nèi)容尘盼,這肯you可能就是設(shè)置了文件隱藏屬性憨愉。這種屬性在一定程度上阻止了黑客篡改系統(tǒng)日志的圖謀烦绳,因此這種“奇怪”的文件也保障了Linux 系統(tǒng)的安全性。

2.3.1 chattr命令

語(yǔ)法:

? chattr [選項(xiàng)] [+-=參數(shù)] 文件

選項(xiàng)及參數(shù):

選項(xiàng) 作用
R 遞歸
參數(shù) 作用
i 無(wú)法對(duì)文件進(jìn)行修改配紫;若對(duì)目錄設(shè)置了該參數(shù)径密,則僅能修改其中的子文件內(nèi)容 而不能新建或刪除文件
a 僅允許補(bǔ)充(追加)內(nèi)容,無(wú)法覆蓋/刪除內(nèi)容(Append Only)
S 文件內(nèi)容在變更后立即同步到硬盤(pán)(sync)
s 徹底從硬盤(pán)中刪除躺孝,不可恢復(fù)(用 0 填充原文件所在硬盤(pán)區(qū)域)
A 不再修改這個(gè)文件或目錄的最后訪問(wèn)時(shí)間(atime)
b 不再修改文件或目錄的存取時(shí)間
d 使用 dump 命令備份時(shí)忽略本文件/目錄
u 當(dāng)刪除該文件后依然保留其在硬盤(pán)中的數(shù)據(jù)享扔,方便日后恢復(fù)

功能描述:

? 設(shè)置文件的隱藏權(quán)限

案例:

通過(guò)隱藏屬性,設(shè)置文件不能刪除

[root@heimatengyun test]# echo 'test chattr'>testattr
[root@heimatengyun test]# chattr +a testattr 
[root@heimatengyun test]# rm testattr 
rm: remove regular file ‘testattr’? y
rm: cannot remove ‘testattr’: Operation not permitted
2.3.2 lsattr命令

語(yǔ)法:

? lsattr 文件

功能描述:

? 顯示文件的隱藏權(quán)限

案例:

? 查看文件隱藏屬性植袍,刪除隱藏屬性

[root@heimatengyun test]# lsattr testattr 
-----a---------- testattr
[root@heimatengyun test]# chattr -a testattr 
[root@heimatengyun test]# lsattr testattr    
---------------- testattr
[root@heimatengyun test]# rm testattr 
rm: remove regular file ‘testattr’? y
[root@heimatengyun test]# 

? 可以看到惧眠,刪除隱藏屬性后文件刪除成功。

2.3 文件訪問(wèn)控制列表

前文講解的一般權(quán)限于个、特殊權(quán)限氛魁、隱藏權(quán)限都是針對(duì)某一類用戶設(shè)置的。如果希望對(duì)某個(gè)指定的用戶進(jìn)行單獨(dú)的權(quán)限控制厅篓,就需要用到文件 的訪問(wèn)控制列表(ACL)了呆盖。

2.3.1 setfacl命令

基于普通文件或目錄設(shè)置 ACL 其實(shí)就是針對(duì)指定的用戶或用戶組設(shè)置文件或目錄的操作權(quán)限。另外贷笛,如果針對(duì)某個(gè)目錄設(shè)置了 ACL应又,則目錄中 的文件會(huì)繼承其 ACL;若針對(duì)文件設(shè)置了 ACL乏苦,則文件不再繼承其所在目錄的 ACL株扛。

文件的 ACL 提供的是在所有者、所屬組汇荐、其他人的讀/寫(xiě)/執(zhí)行權(quán)限之外的特殊權(quán)限控制洞就,使用 setfacl 命令可以針對(duì)單一用戶或用戶組、單一文件或目錄來(lái)進(jìn)行讀/寫(xiě)/執(zhí)行權(quán)限的控制掀淘。

語(yǔ)法:

? setfacl [參數(shù)] 文件名稱

參數(shù)選項(xiàng):

參數(shù) 作用
-R 遞歸參數(shù)
-m modify修改目錄或文件的ACL
-b 刪除擴(kuò)展ACL旬蟋,保留原有的基礎(chǔ)權(quán)限

功能描述:

? 管理文件的 ACL 規(guī)則

案例:

讓普通用戶能訪問(wèn)root目錄

[root@heimatengyun ~]# ll -d /root/
dr-xr-x---. 16 root root 4096 Dec 20 11:49 /root/
[root@heimatengyun ~]# su - test
Last login: Fri Dec 20 18:34:47 CST 2019 on pts/0
[test@heimatengyun ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[test@heimatengyun ~]$ exit
logout

未設(shè)置ACL前其他用戶是不能訪問(wèn)root目錄的,設(shè)置root目錄ACL允許test訪問(wèn)革娄。

[root@heimatengyun ~]# setfacl -Rm u:test:rwx /root/
[root@heimatengyun ~]# ll -d /root/                 
dr-xrwx---+ 16 root root 4096 Dec 20 11:49 /root/
[root@heimatengyun ~]# su - test
Last login: Fri Dec 20 22:10:26 CST 2019 on pts/0
[test@heimatengyun ~]$ ls /root/
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates  Videos  Desktop          Downloads  Music                 Public    test

同時(shí)通過(guò)ll命令可以看到權(quán)限后邊的點(diǎn)變?yōu)榱?倾贰。這個(gè)標(biāo)識(shí)說(shuō)明已經(jīng)設(shè)置了ACL。

2.3.2 getfacl命令

語(yǔ)法:

? getfacl 文件名稱

功能描述:

? 查看文件上設(shè)置的ACL信息

案例:

(1)查看文件上設(shè)置的ACL

[test@heimatengyun ~]$ getfacl /root/
getfacl: Removing leading '/' from absolute path names
# file: root/
# owner: root
# group: root
user::r-x
user:test:rwx
group::r-x
mask::rwx
other::---

(2)刪除文件ACL

[root@heimatengyun ~]# ll -d /root/
dr-xrwx---+ 16 root root 4096 Dec 20 11:49 /root/
[root@heimatengyun ~]# setfacl -b /root/
[root@heimatengyun ~]# ll -d /root/     
dr-xr-x---. 16 root root 4096 Dec 20 11:49 /root/

2.4 臨時(shí)權(quán)限提升

? 平時(shí)學(xué)習(xí)一般直接用root可以避免各種配置服務(wù)或權(quán)限導(dǎo)致的干擾問(wèn)題拦惋,使得學(xué)習(xí)中心放在相應(yīng)的知識(shí)點(diǎn)上匆浙。但是正式工作中,往往很少用root操作厕妖,因此可能會(huì)涉及用戶切換以及用戶提權(quán)問(wèn)題首尼。

2.4.1 su命令

? su 命令可以解決切換用戶身份的需求,使得當(dāng)前用戶在不退出登錄的情況下,順暢地切 換到其他用戶软能。

? 由于前文已經(jīng)演示了su命令的用法迎捺,因此不再贅述。只是要注意su命令與用戶名之間有一個(gè)減號(hào)(-)查排,這意味著完全切 換到新的用戶凳枝,即把環(huán)境變量信息也變更為新用戶的相應(yīng)信息,而不是保留原始的信息雹嗦。強(qiáng) 烈建議在切換用戶身份時(shí)添加這個(gè)減號(hào)(-)。另外合是,當(dāng)從 root 管理員切換到普通用戶時(shí)是不需要密碼驗(yàn)證的了罪,而從普通用戶切換成 root 管理員就需要進(jìn)行密碼驗(yàn)證了;這也是一個(gè)必要的安全檢查聪全。

2.4.2 sudo命令

? 盡管使用 su 命令后泊藕,普通用戶可以完全切換到 root 管理員身份來(lái)完成相應(yīng)工作,但這將暴露 root 管理員的密碼难礼,從而增大了系統(tǒng)密碼被黑客獲取的幾率娃圆;這并不是最安全的方案。

? sudo 命令可以把特定命令的執(zhí)行權(quán)限賦予給指定用戶而無(wú)需給出root密碼蛾茉, 這樣既可保證普通用戶能夠完成特定的工作讼呢,也可以避免泄露 root 管理員密碼。

語(yǔ)法格式:

? sudo [參數(shù)] 命令

參數(shù):

參數(shù) 作用
-l 列出當(dāng)前用戶可執(zhí)行的命令

功能描述:

? sudo 命令用于給普通用戶提供額外的權(quán)限來(lái)完成原本 root 管理員才能完成的任務(wù)谦炬。

? 使用sudo之前需要先配置sudo服務(wù)悦屏,配置文件為/etc/sudoers,可以直接編輯此文件键思,也可以使用visudo命令進(jìn)行配置础爬。

案例:

(1)為普通用戶test添加sudo權(quán)限

? 未為普通用戶配置sudo服務(wù)時(shí),通過(guò)sodo命令查看能執(zhí)行的命令吼鳞,將提升沒(méi)有配置看蚜。

[root@heimatengyun ~]# su - test
Last login: Fri Dec 20 22:14:02 CST 2019 on pts/0
[test@heimatengyun ~]$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for test: 
Sorry, user test may not run sudo on heimatengyun.

? 通過(guò)visudo命令,在“root ALL=(ALL) ALL”后仿照添加“test ALL=(ALL) ALL”赔桌,然后保存退出供炎。操作方式跟vi編輯器一致。

配置內(nèi)容解釋:test ALL=(ALL) ALL 其中test為用戶名疾党,表示誰(shuí)可以使用sudo碱茁,第一個(gè)ALL表示是運(yùn)行使用的主機(jī),等號(hào)之后括號(hào)內(nèi)的ALL表示以誰(shuí)的身份執(zhí)行仿贬,最后的ALL表示可執(zhí)行命令的列表纽竣。“誰(shuí)可以使用 允許使用的主機(jī)=(以誰(shuí)的身份) 可執(zhí)行命令的列表”

配置后,再次使用test用戶來(lái)查看蜓氨,將得出如下結(jié)果:

[root@heimatengyun ~]# su - test
Last login: Fri Dec 20 22:41:52 CST 2019 on pts/0
[test@heimatengyun ~]$ sudo -l
[sudo] password for test: 
Matching Defaults entries for test on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS
    DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1
    PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
    LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User test may run the following commands on this host:
    (ALL) ALL

表明針對(duì)test用戶的sudo服務(wù)配置成功聋袋。配置成功之后,就可以采用sudo提升test用戶的權(quán)限了穴吹。

[test@heimatengyun ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[test@heimatengyun ~]$ sudo ls /root/
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates  Videos
Desktop          Downloads  Music                 Public    test
[test@heimatengyun ~]$ 

是不是很神奇幽勒,test用戶通過(guò)sudo提權(quán)就可以看到root目錄內(nèi)容了。

(2)按需為用戶配置sudo權(quán)限

我們前邊直接給了ALL最大的權(quán)限港令,實(shí)際情況應(yīng)該按需分配最小權(quán)限啥容,比如我們只給test用戶cat命令權(quán)限。

通過(guò)whereis命令查看cat所在路徑顷霹,一定要給命令的絕對(duì)路徑咪惠,不然系統(tǒng)無(wú)法識(shí)別命令。

[test@heimatengyun ~]$ whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz

通過(guò)visudo命令修改之前添加的內(nèi)容為:test ALL=(ALL) /usr/bin/cat淋淀。保存后切換到test普通用戶查看效果

[root@heimatengyun ~]# visudo 
...省略部分內(nèi)容
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
#test ALL=(ALL) ALL
test ALL=(ALL) /usr/bin/cat
...省略部分內(nèi)容
[test@heimatengyun ~]$ sudo -l
[sudo] password for test: 
Matching Defaults entries for test on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS
    DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1
    PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
    LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User test may run the following commands on this host:
    (ALL) /usr/bin/cat
[test@heimatengyun ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[test@heimatengyun ~]$ sudo cat /etc/shadow
...省略部分內(nèi)容
heimagege:!!:18250:0:99999:7:::
[test@heimatengyun ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[test@heimatengyun ~]$ 

從實(shí)驗(yàn)結(jié)果可以看出遥昧,配置cat命令后,只能執(zhí)行cat命令朵纷,再次使用ls命令就不能看到root目錄內(nèi)容炭臭。這樣權(quán)限就得到了很好的控制。

學(xué)習(xí)完用戶及文件相關(guān)權(quán)限知識(shí)后袍辞,下一篇文章我們將講解防火墻相關(guān)知識(shí)鞋仍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市搅吁,隨后出現(xiàn)的幾起案子凿试,更是在濱河造成了極大的恐慌,老刑警劉巖似芝,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件那婉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡党瓮,警方通過(guò)查閱死者的電腦和手機(jī)详炬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寞奸,“玉大人呛谜,你說(shuō)我怎么就攤上這事∏固眩” “怎么了隐岛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瓷翻。 經(jīng)常有香客問(wèn)我聚凹,道長(zhǎng)割坠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任妒牙,我火速辦了婚禮彼哼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘湘今。我一直安慰自己敢朱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布摩瞎。 她就那樣靜靜地躺著拴签,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旗们。 梳的紋絲不亂的頭發(fā)上蚓哩,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音蚪拦,去河邊找鬼杖剪。 笑死冻押,一個(gè)胖子當(dāng)著我的面吹牛驰贷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洛巢,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼括袒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了稿茉?” 一聲冷哼從身側(cè)響起锹锰,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漓库,沒(méi)想到半個(gè)月后恃慧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渺蒿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年痢士,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茂装。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怠蹂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出少态,到底是詐尸還是另有隱情城侧,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布彼妻,位于F島的核電站嫌佑,受9級(jí)特大地震影響豆茫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜歧强,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一澜薄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摊册,春花似錦肤京、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至白修,卻和暖如春妒峦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兵睛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工肯骇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祖很。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓笛丙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親假颇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胚鸯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 內(nèi)容概要 為什么要進(jìn)行權(quán)限管理? 在生產(chǎn)服務(wù)器上笨鸡,所有用戶都用管理員權(quán)限登錄嗎姜钳?顯然這是不可以也是不可能的。 因此...
    若兮緣閱讀 939評(píng)論 1 9
  • 用戶身份 UID(即User IDentification的縮寫(xiě)):每個(gè)用戶都有對(duì)應(yīng)的UID值形耗,并且不相同,帳戶名...
    Rancune閱讀 1,518評(píng)論 0 0
  • 1.安全AAA(3A) Authentication:認(rèn)證Authorization:授權(quán)Accouting|Au...
    尛尛大尹閱讀 1,424評(píng)論 0 2
  • 一激涤、token 1. 定義 令牌拟糕,當(dāng)用戶通過(guò)用戶名和密碼通過(guò)系統(tǒng)用戶數(shù)據(jù)庫(kù),成功登錄系統(tǒng)后昔期,系統(tǒng)會(huì)頒發(fā)一個(gè)令牌給用...
    Kin丶閱讀 860評(píng)論 1 1
  • 學(xué)習(xí)不需要太多時(shí)間已卸,太多金錢(qián),學(xué)了后的陪伴才是最重要的硼一!——藍(lán)天媽媽 感恩你一直的陪伴累澡,期待你這次學(xué)習(xí)回來(lái)的分享。...
    蘭心愛(ài)閱讀 252評(píng)論 1 0