溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中文檔屬性、擁有者、群組、權限的示例分析

發(fā)布時間:2021-05-27 14:11:32 來源:億速云 閱讀:221 作者:小新 欄目:系統(tǒng)運維

小編給大家分享一下Linux中文檔屬性、擁有者、群組、權限的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

寫在前面

我們都知道Linux是一個支持多用戶、多任務的系統(tǒng),這也是它最優(yōu)秀的特性,即可能同時有很多人都在系統(tǒng)上進行工作,所以千萬不要強制關機,同時,為了保護每個人的隱私和工作環(huán)境,針對某一個文檔(文件、目錄),Linux系統(tǒng)定義了三種身份,分別是擁有者(owner)、群組(group)、其他人(others),每一種身份又對應三種權限,分別是可讀(readable)、可寫(writable)、可執(zhí)行(excutable),通過這樣的設計就可以保證每個使用者所擁有數據的隱密性。

文檔屬性

使用命令ls -al --full-time,或者此命令的簡寫ll可以查看文件或者目錄的所有屬性。如下:
 

Linux中文檔屬性、擁有者、群組、權限的示例分析

從上面可以看到,每一行都有7列,分別是:

  1. 第一列
    共10位,第1位表示文檔類型,d表示目錄,-表示文件,l表示鏈接文件,d表示可隨機存取的設備,如U盤等,c表示一次性讀取設備,如鼠標、鍵盤等。后9位,依次對應三種身份所擁有的權限,身份順序為:owner、group、others,權限順序為:readable、writable、excutable。如:-r-xr-x---的含義為當前文檔是一個文件,擁有者可讀、可執(zhí)行,同一個群組下的用戶,可讀、可寫,其他人沒有任何權限。

  2. 第二列
    表示連結數

  3. 第三列
    表示擁有者

  4. 第四列
    表示所屬群組

  5. 第五列
    表示文檔容量大小,單位字節(jié)

  6. 第六列
    表示文檔最后修改時間,注意不是文檔的創(chuàng)建時間哦

  7. 第七列
    表示文檔名稱。以點(.)開頭的是隱藏文檔

變更擁有者(owner)

位置

etc/passwd

Linux中文檔屬性、擁有者、群組、權限的示例分析

注意:必須是該位置下已存在的帳號。也就是在/etc/passwd中有記錄的擁有者才能改變。

語法

chown [-R] [帳號名稱] [文件或目錄]
chown [-R] [帳號名稱]:[群組名稱] [文件或目錄]

備注:此命令也可以順便變更文檔群組,但還是建議使用chgrp命令來變更文檔群組。

選項

-R 遞歸變更,即連同次目錄下的所有文件(夾)都要變更。

用法

chown daemon test 變更文件夾test賬號為daemon。

Linux中文檔屬性、擁有者、群組、權限的示例分析

chown daemon:root test 變更文件夾test群組為root。

Linux中文檔屬性、擁有者、群組、權限的示例分析

chown root.users test 變更文件夾賬號為root,群組為users

Linux中文檔屬性、擁有者、群組、權限的示例分析

chown .root test 單獨變更群組為root

Linux中文檔屬性、擁有者、群組、權限的示例分析

備注:雖然也可以在擁有者與群組間加小數點(.),但為了避免有的同學命名中帶點,故還是建議使用冒號“:”來隔開擁有者與群組,避免誤判。

變更群組(group)

位置

etc/group

Linux中文檔屬性、擁有者、群組、權限的示例分析

備注:從這里可以查看到所有群組

語法

chgrp [-options] [群組名] [文檔路徑]
備注:關于options,可以通過man chgrp、info chgrp、chgrp --help等命令查詢詳細用法。
用法

chgrp -R users test 改變test文件夾及其所有子文件(夾)的群組為users。

Linux中文檔屬性、擁有者、群組、權限的示例分析

注意:群組名稱不在位置內,將會報錯invalid group。

Linux中文檔屬性、擁有者、群組、權限的示例分析

變更權限

Linux文檔的基本權限就三個,分別是read/write/execute,加上身份owner/group/others也一共也只有九個。權限變更的方式有2種,分別是符號法和數字法。

符號法

分別使用u,g,o來代表三種身份,a表示全部身份;分別使用r、w、x表示三種權限;分別使用+、-、=表示操作行為

語法

chmod | u g o a | +(加入) -(除去) =(設置) | r w x | 文檔路徑

 設置權限(=)

變更目錄test的權限為任何人都可讀、寫、執(zhí)行。

chmod u=rwx,g=rwx,o=rwx test

chmod ugo=rwx test

chmod a=rwx test

Linux中文檔屬性、擁有者、群組、權限的示例分析

去掉權限(-)

去掉目錄test執(zhí)行權限

chmod u-x,g-x,o-x test

chmod ugo-x test

chmod a-x test

Linux中文檔屬性、擁有者、群組、權限的示例分析

備注:執(zhí)行權限(x),對目錄而已就是其他用戶能否cd test成為工作目錄。

添加權限(+)

增加目錄test執(zhí)行權限

chmod u+x,g+x,o+x test

chmod ugo+x test

chmod a+x test

Linux中文檔屬性、擁有者、群組、權限的示例分析

備注:很熟悉吧,如果我們編寫完一個shell文件test.sh后,通過chmod a+x test.sh就添加了文件執(zhí)行權限。

數字法

顧名思義,就是使用數字來代表權限,r,w,x分別為4,2,1。三種權限累加就可以得出一種身份的權限。

設置目錄test的權限為任何人都可讀、寫、執(zhí)行。

chmod 777 test

Linux中文檔屬性、擁有者、群組、權限的示例分析

設置目錄test的權限為任何人都可讀、寫。

chmod 666 test

賦予一個shell文件test.sh可執(zhí)行權限,擁有者可讀、寫、執(zhí)行,群組賬號和其他人可讀、執(zhí)行。

chmod 755 test

備注:有沒有發(fā)現數字法更簡單?。。?!

文件和目錄權限差異

文檔權限對于文件和目錄有巨大的差異

文件

針對的是該文件內容

  • readable 可讀取該文件的實際內容

  • writable 可以編輯、新增或者是修改該文件的內容

  • executable 有可以被系統(tǒng)執(zhí)行的權限

備注:具有w權限不并不代表可以刪除文件,刪除文件是目錄權限控制的范圍。那是因為目錄的相關權限及屬性是記錄到目錄的inode,而目錄下的所有文件的名稱和對應的索引文件(inode)號碼又是記錄到目錄所屬的block中,所以當我們讀取某個文件時,必須先讀到目錄的inode,然后再讀取目錄的block信息,拿到待讀取文件的索引信息,即具體存儲在哪個block上,最后才能讀到文件內容(這塊內容,需要先理解Linux的文件系統(tǒng),比如Ext2/Ext3/Ext4,后面我們會詳細介紹) ------ 先記住文件權限僅僅對文件內容有效。

示例說明

使用root身份讀取目錄test001下的文件test001-1
查看目錄物理全路徑:pwd

Linux中文檔屬性、擁有者、群組、權限的示例分析

列出有關的目錄和文件:ll -di / /root /root/test001 /root/test001/test001-1

通過man ls 查看-i,全稱inode,即 print the index number of each file

Linux中文檔屬性、擁有者、群組、權限的示例分析

  1. 目錄/的inode: 通過掛載點的信息找到inode號碼為2的block。

  2. 目錄/的block:通過上一步驟找到的block,找到root/目錄的inode號碼為131073。

  3. 目錄root/的inode:讀取編號為131073的inode找到目錄的block。

  4. 目錄root/的block:通過上一步驟找到的block,找到root/test001/目錄的inode號碼為527524。

  5. 目錄root/test001/的inode:讀取編號為527524的inode找到目錄的block。

  6. 目錄root/test001/的block:通過上一步驟找到的block,找到文件test001-1目錄的inode號碼為527526。

  7. 文件test001-1的inode:讀取編號為527526的inode找到文件的block。

  8. 文件test001-1的block:通過上一步驟找到的block,讀取文件內容。

由于使用的是root身份,具有讀取任何文檔的權限。如果,使用一般賬號,上面每一個步驟的讀取,還會匹配權限。

目錄

針對的是該目錄下的文件對象

  • readable 具有讀取目錄結構清單的權限,即可以通過ls命令,查詢該目錄清單。

  • writable 具有變動該目錄結構清單的權限,即可以創(chuàng)建、遷移、刪除、更名該目錄下的文件。

  • executable 具備進入該目錄的權限,即可以通過cd命令,成為工作目錄。

備注:從上面可以得出,開放目錄給任何人瀏覽時,至少需要賦予r或x權限。讀取目錄文件內容,至少需要目錄權限x和文件權限r。

以上是“Linux中文檔屬性、擁有者、群組、權限的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI