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

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