理解Linux文檔屬性、擁有者、群組、權(quán)限、差異知識(shí)點(diǎn)小結(jié)

寫(xiě)在前面
我們都知道Linux是一個(gè)支持多用戶、多任務(wù)的系統(tǒng),這也是它最優(yōu)秀的特性,即可能同時(shí)有很多人都在系統(tǒng)上進(jìn)行工作,所以千萬(wàn)不要強(qiáng)制關(guān)機(jī),同時(shí),為了保護(hù)每個(gè)人的隱私和工作環(huán)境,針對(duì)某一個(gè)文檔(文件、目錄),Linux系統(tǒng)定義了三種身份,分別是擁有者(owner)、群組(group)、其他人(others),每一種身份又對(duì)應(yīng)三種權(quán)限,分別是可讀(readable)、可寫(xiě)(writable)、可執(zhí)行(excutable),通過(guò)這樣的設(shè)計(jì)就可以保證每個(gè)使用者所擁有數(shù)據(jù)的隱密性。
文檔屬性
使用命令ls -al --full-time
,或者此命令的簡(jiǎn)寫(xiě)ll可以查看文件或者目錄的所有屬性。如下:
從上面可以看到,每一行都有7列,分別是:
- 第一列
共10位,第1位表示文檔類型,d表示目錄,-表示文件,l表示鏈接文件,d表示可隨機(jī)存取的設(shè)備,如U盤等,c表示一次性讀取設(shè)備,如鼠標(biāo)、鍵盤等。后9位,依次對(duì)應(yīng)三種身份所擁有的權(quán)限,身份順序?yàn)椋簅wner、group、others,權(quán)限順序?yàn)椋簉eadable、writable、excutable。如:-r-xr-x---的含義為當(dāng)前文檔是一個(gè)文件,擁有者可讀、可執(zhí)行,同一個(gè)群組下的用戶,可讀、可寫(xiě),其他人沒(méi)有任何權(quán)限。 - 第二列
表示連結(jié)數(shù) - 第三列
表示擁有者 - 第四列
表示所屬群組 - 第五列
表示文檔容量大小,單位字節(jié) - 第六列
表示文檔最后修改時(shí)間,注意不是文檔的創(chuàng)建時(shí)間哦 - 第七列
表示文檔名稱。以點(diǎn)(.)開(kāi)頭的是隱藏文檔
變更擁有者(owner)
位置
etc/passwd
注意:必須是該位置下已存在的帳號(hào)。也就是在/etc/passwd
中有記錄的擁有者才能改變。
語(yǔ)法
chown [-R] [帳號(hào)名稱] [文件或目錄](méi)
chown [-R] [帳號(hào)名稱]:[群組名稱] [文件或目錄](méi)
備注:此命令也可以順便變更文檔群組,但還是建議使用chgrp命令來(lái)變更文檔群組。
選項(xiàng)
-R 遞歸變更,即連同次目錄下的所有文件(夾)都要變更。
用法
chown daemon test
變更文件夾test賬號(hào)為daemon。
chown daemon:root test 變更文件夾test群組為root。
chown root.users test 變更文件夾賬號(hào)為root,群組為users
chown .root test 單獨(dú)變更群組為root
備注:雖然也可以在擁有者與群組間加小數(shù)點(diǎn)(.),但為了避免有的同學(xué)命名中帶點(diǎn),故還是建議使用冒號(hào)“:”來(lái)隔開(kāi)擁有者與群組,避免誤判。
變更群組(group)
位置
etc/group
備注:從這里可以查看到所有群組
語(yǔ)法
chgrp [-options] [群組名] [文檔路徑]
備注:關(guān)于options,可以通過(guò)man chgrp、info chgrp、chgrp --help等命令查詢?cè)敿?xì)用法。
用法
chgrp -R users test
改變test文件夾及其所有子文件(夾)的群組為users。
注意:群組名稱不在位置內(nèi),將會(huì)報(bào)錯(cuò)invalid group。
變更權(quán)限
Linux文檔的基本權(quán)限就三個(gè),分別是read/write/execute,加上身份owner/group/others也一共也只有九個(gè)。權(quán)限變更的方式有2種,分別是符號(hào)法和數(shù)字法。
符號(hào)法
分別使用u,g,o來(lái)代表三種身份,a表示全部身份;分別使用r、w、x表示三種權(quán)限;分別使用+、-、=表示操作行為
語(yǔ)法
chmod | u g o a | +(加入) -(除去) =(設(shè)置) | r w x | 文檔路徑
設(shè)置權(quán)限(=)
變更目錄test的權(quán)限為任何人都可讀、寫(xiě)、執(zhí)行。
chmod u=rwx,g=rwx,o=rwx test
或
chmod ugo=rwx test
或
chmod a=rwx test
去掉權(quán)限(-)
去掉目錄test執(zhí)行權(quán)限
chmod u-x,g-x,o-x test
或
chmod ugo-x test
或
chmod a-x test
備注:執(zhí)行權(quán)限(x),對(duì)目錄而已就是其他用戶能否cd test成為工作目錄。
添加權(quán)限(+)
增加目錄test執(zhí)行權(quán)限
chmod u+x,g+x,o+x test
或
chmod ugo+x test
或
chmod a+x test
備注:很熟悉吧,如果我們編寫(xiě)完一個(gè)shell文件test.sh后,通過(guò)chmod a+x test.sh就添加了文件執(zhí)行權(quán)限。
數(shù)字法
顧名思義,就是使用數(shù)字來(lái)代表權(quán)限,r,w,x分別為4,2,1。三種權(quán)限累加就可以得出一種身份的權(quán)限。
設(shè)置目錄test的權(quán)限為任何人都可讀、寫(xiě)、執(zhí)行。
chmod 777 test
設(shè)置目錄test的權(quán)限為任何人都可讀、寫(xiě)。
chmod 666 test
賦予一個(gè)shell文件test.sh可執(zhí)行權(quán)限,擁有者可讀、寫(xiě)、執(zhí)行,群組賬號(hào)和其他人可讀、執(zhí)行。
chmod 755 test
備注:有沒(méi)有發(fā)現(xiàn)數(shù)字法更簡(jiǎn)單?。。?!
文件和目錄權(quán)限差異
文檔權(quán)限對(duì)于文件和目錄有巨大的差異
文件
針對(duì)的是該文件內(nèi)容
- readable 可讀取該文件的實(shí)際內(nèi)容
- writable 可以編輯、新增或者是修改該文件的內(nèi)容
- executable 有可以被系統(tǒng)執(zhí)行的權(quán)限
備注:具有w權(quán)限不并不代表可以刪除文件,刪除文件是目錄權(quán)限控制的范圍。那是因?yàn)槟夸浀南嚓P(guān)權(quán)限及屬性是記錄到目錄的inode,而目錄下的所有文件的名稱和對(duì)應(yīng)的索引文件(inode)號(hào)碼又是記錄到目錄所屬的block中,所以當(dāng)我們讀取某個(gè)文件時(shí),必須先讀到目錄的inode,然后再讀取目錄的block信息,拿到待讀取文件的索引信息,即具體存儲(chǔ)在哪個(gè)block上,最后才能讀到文件內(nèi)容(這塊內(nèi)容,需要先理解Linux的文件系統(tǒng),比如Ext2/Ext3/Ext4,后面我們會(huì)詳細(xì)介紹) ------ 先記住文件權(quán)限僅僅對(duì)文件內(nèi)容有效。
示例說(shuō)明
使用root身份讀取目錄test001
下的文件test001-1
查看目錄物理全路徑:
pwd
列出有關(guān)的目錄和文件:ll -di / /root /root/test001 /root/test001/test001-1
通過(guò)man ls 查看-i,全稱inode,即 print the index number of each file
- 目錄/的inode: 通過(guò)掛載點(diǎn)的信息找到inode號(hào)碼為2的block。
- 目錄/的block:通過(guò)上一步驟找到的block,找到root/目錄的inode號(hào)碼為131073。
- 目錄root/的inode:讀取編號(hào)為131073的inode找到目錄的block。
- 目錄root/的block:通過(guò)上一步驟找到的block,找到root/test001/目錄的inode號(hào)碼為527524。
- 目錄root/test001/的inode:讀取編號(hào)為527524的inode找到目錄的block。
- 目錄root/test001/的block:通過(guò)上一步驟找到的block,找到文件test001-1目錄的inode號(hào)碼為527526。
- 文件test001-1的inode:讀取編號(hào)為527526的inode找到文件的block。
- 文件test001-1的block:通過(guò)上一步驟找到的block,讀取文件內(nèi)容。
由于使用的是root身份,具有讀取任何文檔的權(quán)限。如果,使用一般賬號(hào),上面每一個(gè)步驟的讀取,還會(huì)匹配權(quán)限。
目錄
針對(duì)的是該目錄下的文件對(duì)象
- readable 具有讀取目錄結(jié)構(gòu)清單的權(quán)限,即可以通過(guò)ls命令,查詢?cè)撃夸浨鍐巍?/li>
- writable 具有變動(dòng)該目錄結(jié)構(gòu)清單的權(quán)限,即可以創(chuàng)建、遷移、刪除、更名該目錄下的文件。
- executable 具備進(jìn)入該目錄的權(quán)限,即可以通過(guò)cd命令,成為工作目錄。
備注:從上面可以得出,開(kāi)放目錄給任何人瀏覽時(shí),至少需要賦予r或x權(quán)限。讀取目錄文件內(nèi)容,至少需要目錄權(quán)限x和文件權(quán)限r(nóng)。
總結(jié)
Linux的每個(gè)文檔可以分別針對(duì)三種身份賦予rwx權(quán)限;chgrp命令變更文件群組,chmod命令變更文件權(quán)限,chown變更文件擁有者;那么如何運(yùn)用這些屬性和權(quán)限來(lái)保證每個(gè)租戶數(shù)據(jù)的安全性和隱密性,請(qǐng)看下一篇,Linux如何管理文檔多租戶進(jìn)行實(shí)戰(zhàn)練習(xí)。
如果你覺(jué)得本篇文章對(duì)您有幫助的話,感謝您的【推薦】。
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來(lái)大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開(kāi)發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過(guò)程中,查看和了解硬盤信息是非常重要的工作,尤其是對(duì)于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細(xì)信息? 3招輕松查看CPU型號(hào)、核心數(shù)和溫度
在日常運(yùn)維工作中,獲取 CPU 信息是系統(tǒng)運(yùn)維管理員常見(jiàn)的工作內(nèi)容,無(wú)論是為了性能調(diào)優(yōu)、硬件升級(jí)還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨(dú)樹(shù)一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡(jiǎn)化,優(yōu)化,現(xiàn)代化,實(shí)用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來(lái)簡(jiǎn)要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機(jī)U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個(gè)win11裝機(jī)u盤,詳細(xì)如下2025-02-17Rsnapshot怎么用? 基于Rsync的強(qiáng)大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過(guò) SSH 備份遠(yuǎn)程文件,接下來(lái)詳細(xì)介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時(shí)、每天、每周和每月的本地備份,以及如何進(jìn)2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡(jiǎn)化內(nèi)核搶占邏輯,通過(guò)減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運(yùn)行時(shí)表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預(yù)覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來(lái)了諸多優(yōu)化和改進(jìn),進(jìn)一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來(lái)看看詳細(xì)安裝指南2025-01-16