??紙上得來(lái)終覺(jué)淺, 絕知此事要躬行。
??主頁(yè):June-Frost
??專(zhuān)欄:Linux入門(mén)
??【從零開(kāi)始學(xué)習(xí)Linux】系列均屬于Linux入門(mén),主要包含Linux操作系統(tǒng)下的指令、操作、權(quán)限以及開(kāi)發(fā)工具,使得擁有基本編寫(xiě)代碼的能力。
??該文章主要了解Shell外殼(理論)及用戶權(quán)限,該系列分為兩部分進(jìn)行總結(jié)敘述。第一部分包含了shell外殼的理論知識(shí)以及部分權(quán)限知識(shí),請(qǐng)看這里??【從零開(kāi)始學(xué)習(xí)Linux】一文帶你了解Shell外殼及用戶權(quán)限(一),而該篇為第二部分,將繼續(xù)詳細(xì)講述用戶權(quán)限的相關(guān)知識(shí)。
??前言:
?在Linux系統(tǒng)中,文件權(quán)限和用戶隸屬角色是兩個(gè)非常重要的概念。通過(guò)更改文件權(quán)限,我們可以控制誰(shuí)可以讀取、寫(xiě)入或執(zhí)行特定文件或目錄;而通過(guò)更改用戶隸屬角色,我們可以改變文件的擁有者和所屬組,從而更好地管理文件和目錄的安全性和訪問(wèn)權(quán)限。
?在第一部分中,我們已經(jīng)介紹了如何更改文件權(quán)限,包括使用chmod
命令以符號(hào)表示法和數(shù)字表示法來(lái)修改文件的讀、寫(xiě)和執(zhí)行權(quán)限。這些操作可以幫助我們確保只有授權(quán)的用戶能夠訪問(wèn)特定的文件或目錄,從而提高系統(tǒng)的安全性。
?然而,僅僅更改文件權(quán)限并不足以保護(hù)文件免受未經(jīng)授權(quán)的訪問(wèn)。如果系統(tǒng)受到攻擊,攻擊者可能會(huì)嘗試通過(guò)提升自己的用戶隸屬角色來(lái)獲取更高的權(quán)限。所以,我們需要了解如何更改文件權(quán)限隸屬的角色。
?? 更改文件權(quán)限隸屬角色
?在Linux中,你可以使用chown
命令來(lái)更改文件或目錄的所有者和所屬組。
chown
- 語(yǔ)法:
chown [選項(xiàng)] 新所有者 文件/目錄
- 功能:更改文件或目錄的所有者和所屬組。
- 說(shuō)明:① 新所有者可以是用戶名或用戶ID,也可以是用戶名和組名的組合,用空格隔開(kāi)。② 只有超級(jí)用戶(root)或文件的當(dāng)前擁有者(被授權(quán)) 才能更改文件的所有者和所屬組。
???如果想同時(shí)修改擁有者和所屬組,可以使用 用戶名:組名 的組合。
??一些常用的選項(xiàng):
-R
遞歸地更改目錄及其子目錄中的所有文件的所有者和所屬組。-v
顯示詳細(xì)的操作信息。-c
只顯示發(fā)生更改的文件或目錄的操作信息。-f
忽略錯(cuò)誤信息,不顯示錯(cuò)誤信息。
?此外,在Linux中chgrp
也可以修改用戶隸屬角色。
chgrp
- 語(yǔ)法:
chgrp [參數(shù)] 用戶組名 文件名
- 功能:修改文件或目錄的所屬組。
- 常用選項(xiàng):
-R
遞歸修改指定目錄下的所有文件及子目錄。
對(duì) 這兩個(gè)命令只有超級(jí)用戶(root)或文件的當(dāng)前擁有者(被授權(quán)) 才能更改 進(jìn)行說(shuō)明:
?在Linux系統(tǒng)中,文件的擁有者和所屬組是與系統(tǒng)安全和權(quán)限管理緊密相關(guān)的屬性。為了確保系統(tǒng)的安全性和穩(wěn)定性,只有具有管理員權(quán)限的root用戶或其授權(quán)(被添加到白名單)的用戶才能更改文件的擁有者和所屬組。
?普通用戶在沒(méi)有適當(dāng)權(quán)限的情況下更改文件的擁有者或所屬組可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定或其他用戶的隱私泄露。此外,為了防止惡意用戶更改重要系統(tǒng)文件的擁有者和所屬組,從而獲得不當(dāng)?shù)臋?quán)限,Linux系統(tǒng)采取了嚴(yán)格的權(quán)限管理策略。
?當(dāng)普通用戶需要進(jìn)行此類(lèi)操作時(shí),他們可以通過(guò)以下方法獲得臨時(shí)的root權(quán)限:
- 使用
su
命令切換到root用戶。 - 使用
sudo
命令執(zhí)行特定的操作并獲得root的權(quán)限。
?即使獲得了root權(quán)限,用戶也應(yīng)謹(jǐn)慎操作,確保了解正在執(zhí)行的操作的后果。
?? 文件類(lèi)型
?文件類(lèi)型可以反應(yīng)出該文件屬于哪一種類(lèi)別,可以被哪些軟件操作。在Windows操作系統(tǒng)中,文件類(lèi)型通常使用后綴標(biāo)識(shí),但是Linux系統(tǒng)下的文件類(lèi)型是通過(guò)文件屬性字段來(lái)體現(xiàn)的,文件屬性字段由10個(gè)字符組成,后面九個(gè)字符表示每個(gè)身份對(duì)應(yīng)的權(quán)限,而第一個(gè)字符表示文件類(lèi)型。
??文件類(lèi)型可以分為以下幾種:
-
-
普通文件:這是Linux中最常見(jiàn)的一種文件類(lèi)型,用于存儲(chǔ)文本、數(shù)據(jù)等。可以細(xì)分為純文本文件,源代碼,圖片,視頻,庫(kù),可執(zhí)行文件等。
-
d
目錄文件。
-
b
塊設(shè)備文件:磁盤(pán)被視為塊設(shè)備文件的一種常見(jiàn)形式,因?yàn)樗哂袎K設(shè)備的特性,如支持隨機(jī)訪問(wèn)、可以獨(dú)立地讀寫(xiě)等。
-
c
字符設(shè)備文件:字符設(shè)備通常沒(méi)有內(nèi)部緩沖區(qū),數(shù)據(jù)會(huì)立即傳輸?shù)皆O(shè)備或從設(shè)備中讀取,所以對(duì)字符設(shè)備的讀寫(xiě)操作是實(shí)時(shí)的,不會(huì)有額外的延遲。同時(shí),字符設(shè)備通常是順序訪問(wèn)的,即按照數(shù)據(jù)的順序進(jìn)行讀寫(xiě)操作,不支持像塊設(shè)備那樣的以塊為單位進(jìn)行讀寫(xiě)。鍵盤(pán),顯示器,打印機(jī)等就是常見(jiàn)的形式。
-
l
軟鏈接:鏈接文件使用ln
命令創(chuàng)建,軟鏈接(也稱(chēng)為符號(hào)鏈接)則類(lèi)似于Windows的快捷方式,它指向目標(biāo)文件或目錄的路徑,可以隨時(shí)修改和更新。
-
p
管道文件:被用于進(jìn)程間通信的一種特殊文件類(lèi)型。 -
s
套接口文件(Socket):用于進(jìn)程間網(wǎng)絡(luò)通信。
?通過(guò)使用file
指令可以辨識(shí)文件類(lèi)型。
?注意:對(duì)于Linux系統(tǒng)來(lái)說(shuō),文件類(lèi)型是不看后綴標(biāo)識(shí)的,但是在上層工具上(例如,編譯器)是需要后綴的。此外,在應(yīng)用級(jí)別上,文件名后綴可以方便地表示出文件的類(lèi)型、內(nèi)容或者格式,對(duì)于識(shí)別和管理文件具有很大的幫助。
?? 目錄權(quán)限
?目錄權(quán)限是文件系統(tǒng)中的另一個(gè)重要組成部分,它決定了用戶對(duì)目錄及其內(nèi)容的訪問(wèn)和操作能力。與文件權(quán)限類(lèi)似,目錄權(quán)限也分為讀、寫(xiě)和執(zhí)行三種基本權(quán)限,分別對(duì)應(yīng)著用戶對(duì)目錄的查看、修改和執(zhí)行操作。
?對(duì)一個(gè)目錄來(lái)說(shuō):
- 擁有執(zhí)行權(quán)限才可以進(jìn)入目錄。
- 擁有讀權(quán)限才可以查看目錄下的文件屬性列表。
- 擁有寫(xiě)權(quán)限才可以在目錄中創(chuàng)建,刪除文件,包括修改文件名
?? 注意:沒(méi)有寫(xiě)權(quán)限是無(wú)法改目錄內(nèi)的文件名的,但是可以修改目錄內(nèi)的文件權(quán)限。這是因?yàn)樵诟淖兾募拿Q(chēng)時(shí),操作系統(tǒng)實(shí)際上是在刪除原來(lái)的文件名并將其替換為新的文件名。這個(gè)操作涉及到在目錄中修改文件記錄,需要寫(xiě)入權(quán)限才能完成。但是修改文件權(quán)限只需要更新元數(shù)據(jù)即可,這些元數(shù)據(jù)通常不需要寫(xiě)入權(quán)限就可以查看和修改。
?? umask權(quán)限掩碼
?每當(dāng)我們默認(rèn)創(chuàng)建一個(gè)文件時(shí),會(huì)發(fā)現(xiàn)默認(rèn)權(quán)限顯示為rw-rw-r--
,反應(yīng)到八進(jìn)制數(shù)字表示法就是664,創(chuàng)建一個(gè)目錄時(shí),發(fā)現(xiàn)默認(rèn)權(quán)限為rwxrwxr-x
,反應(yīng)到八進(jìn)制數(shù)字表示法就是775。
?這種現(xiàn)象的出現(xiàn)是初始權(quán)限和權(quán)限掩碼的共同作用下形成的。為了防止未經(jīng)授權(quán)的用戶執(zhí)行文件并且大部分文件也都不是可執(zhí)行文件,所以系統(tǒng)默認(rèn)創(chuàng)建的文件是不具有執(zhí)行權(quán)限,初始權(quán)限就表示為666,但是對(duì)于一個(gè)目錄,它本身就是用來(lái)存儲(chǔ)文件和子目錄的,需要允許其他用戶在此目錄下創(chuàng)建、刪除和修改文件,所以目錄的初始權(quán)限就是777。
?在Linux系統(tǒng)下,提供了umask權(quán)限掩碼,它的存在讓用戶可以定制一個(gè)文件被創(chuàng)建時(shí)的默認(rèn)權(quán)限,它是一個(gè)由3個(gè)八進(jìn)制的數(shù)字所組成的值,將初始權(quán)限屏蔽權(quán)限掩碼后,即可產(chǎn)生建立文件時(shí)預(yù)設(shè)的權(quán)限。
?在shell中可以直接運(yùn)行umask命令來(lái)查看當(dāng)前shell的umask值。
? 為了讓大家更好的理解,來(lái)看圖??
??如果umask中1的部分對(duì)應(yīng)的初始權(quán)限本身就是0,就不需要處理了。我們可以將最終形成的默認(rèn)權(quán)限看作是通過(guò) 起始權(quán)限&(~umask)
得來(lái)的。
?? 粘滯位
?在Linux系統(tǒng)中,/tmp目錄作為系統(tǒng)的臨時(shí)文件夾,可以實(shí)現(xiàn)多個(gè)用戶之間的文件共享,為了保證這種功能,會(huì)將other對(duì)應(yīng)的讀,寫(xiě),執(zhí)行權(quán)限全部放開(kāi)。
?但是在前文中,我們已經(jīng)了解到如果目錄中有寫(xiě)權(quán)限,是可以對(duì)內(nèi)部文件進(jìn)行刪除的。所以,為了防止普通用戶隨意刪除或移動(dòng)其他用戶的臨時(shí)文件,系統(tǒng)給共享目錄的other新增了一個(gè)粘滯位(t)。
?粘滯位不僅擁有執(zhí)行(x)的意義,同時(shí)進(jìn)一步對(duì)目錄權(quán)限進(jìn)行特殊限定:只有該目錄下的文件的所有者和超級(jí)管理員(root)可以刪除或移動(dòng)該文件,即使其他用戶有該目錄的寫(xiě)權(quán)限,也無(wú)法刪除或移動(dòng)不屬于他們的文件。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-753891.html
?? 結(jié)語(yǔ)
?文章到這里就結(jié)束了,如果對(duì)你有幫助,你的點(diǎn)贊將會(huì)是我的最大動(dòng)力,如果大家有什么問(wèn)題或者不同的見(jiàn)解,歡迎大家的留言~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-753891.html
到了這里,關(guān)于【從零開(kāi)始學(xué)習(xí)Linux】一文帶你了解Shell外殼及用戶權(quán)限(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!