首頁 > 軟體

Linux檔案許可權基本屬性圖文詳解

2020-06-16 16:38:13

【概述】

在 Linux 系統中,不同的使用者處於不同的地位,擁有不同的許可權,為保護系統安全性,Linux 系統對不同的使用者存取同一檔案(包括目錄檔案)的許可權做了不同的規定。

Linux 系統的每一個檔案或目錄都有存取許可權,這些存取許可權決定了哪些使用者和群組能存取檔案和能執行的操作。

【檢視檔案許可權】

使用ls -l 命令可以顯示檔案的屬性以及檔案所屬的使用者和組。

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ ls -l
總用量 2200
drwxrwxr-x 2 linuxidc linuxidc    4096 2月  18 10:59 linuxidc.com
-rw------- 1 linuxidc linuxidc 1292472 2月  24 18:02 linuxidc.com.jpg
-rw-r--r-- 1 linuxidc linuxidc    834 2月  21 10:42 linuxidc.gif
-rw-r--r-- 1 linuxidc linuxidc  937514 2月  21 07:58 linuxidc.net.jpg
drwxrwxr-x 2 linuxidc linuxidc    4096 2月  26 12:12 linux.linuxidc.com
drwxrwxr-x 3 linuxidc linuxidc    4096 2月  27 10:45 Linux公社
-rw------- 1 linuxidc linuxidc    3287 2月  20 20:29 www.linuxidc.com.gif

如圖,以第一行為例:drwxrwxr-x 2 linuxidc linuxidc    4096 2月  18 10:59 linuxidc.com

其基本構成是:檔案屬性 連結數 所有者 所屬使用者組 最後修改時間 檔名

1.檔案型別

每個檔案的屬性由左邊第一部分的10個字元來確定。

第一個字元代表檔案型別,具體字元有:

d 目錄
- 普通檔案
I 軟連結,即連結文件(link file)
b 塊裝置,裝置檔案中可供儲存的介面裝置(可隨機儲存裝置)
c 字元裝置,裝置檔案中串列埠裝置(一次性讀取裝置)
s 網路通訊端(socket)
p

管道(piep)

2.檔案許可權

檔案型別其後的九個字元三個一組,均為 r w x 的三個引數的組合。其中, r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執行(execute),這三個許可權的位置不會改變,若沒有許可權,僅會出現 - 符號。

以下圖為例,從左至右用0-9表示10個字元,第0位確定檔案型別,第1-3位確定屬主許可權擁有該檔案的許可權(該檔案的所有者的許可權),第4-6位確定屬組許可權擁有該檔案的許可權(所有者的同組使用者),第7-9位確定其他使用者擁有該檔案的許可權。

註:

  1. 讀許可權,表示可以用一些命令來讀取某個檔案的內容;寫許可權,表示可以編輯和修改某個檔案;執行許可權,通常指可以執行的二進位制程式檔案或者指令碼檔案。
  2. 一個目錄同時具有讀許可權和執行許可權才可以開啟並檢視內部檔案,而一個目錄要有寫許可權才允許在其中建立其它檔案,這是因為目錄檔案實際儲存著該目錄裡面的檔案的列表等資訊。

3.連結數

檔案屬性後面的數位代表連結到該檔案所在的 inode 結點的檔名數目。

4.檔案大小

檔案大小是以 inode 結點大小為單位來表示的檔案大小,可以給 ls 加上 -lh 引數來更直觀的檢視檔案的大小。

5.檔案所有者與所屬使用者組

每個檔案都有一特定的所有者,也就是對該檔案具有所有權的使用者,同時,在 Linux 系統中,使用者是按組分類的,一個使用者屬於一個或多個組,而檔案所有者以外的使用者又可以分為檔案所有者的同組使用者和其他使用者。

因此,Linux 系統按檔案所有者、檔案所有者同組使用者和其他使用者來規定了不同的檔案存取許可權。

所有者與所屬使用者組,標明了該檔案具所有權的使用者及該檔案所屬的使用者組。

【檔案屬性的更改】

1.更改檔案屬主

語法:chown [選項] 屬主名 檔名

常用選項

-R:遞回更改檔案屬組,即更改某目錄檔案的屬組時,若加上-R,那麼該目錄下的所有檔案的屬組都會更改。

linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 linuxidc linuxidc 4096 3月  11 14:23 linuxmi
linuxidc@linuxidc:~/linuxidc.com$ sudo chown root linuxmi
[sudo] linuxidc 的密碼:
linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 root linuxidc 4096 3月  11 14:23 linuxmi

如圖,名為linuxmi的普通檔案的所屬主從開始的 linuxidc 改變為 root

註:

chown命令更改檔案屬主的同時,也可以更改檔案屬組,語法為:chown [選項] 屬主名:屬組名 檔名

linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 root root 4096 3月  11 14:23 linuxmi
linuxidc@linuxidc:~/linuxidc.com$ sudo chown linuxidc:docker linuxmi
linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 linuxidc docker 4096 3月  11 14:23 linuxmi

如圖,名為linuxmi的普通檔案的所屬主從開始的 root 改變為 linuxidc,所屬組從開始的 root 變為 docker

2.更改檔案屬組

語法:chgrp [選項] 使用者組名 檔名

選項同 chown 命令的選項相同

linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 linuxidc docker 4096 3月  11 14:23 linuxmi
linuxidc@linuxidc:~/linuxidc.com$ sudo chgrp mysql linuxmi
linuxidc@linuxidc:~/linuxidc.com$ ls
linuxmi
linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 linuxidc mysql 4096 3月  11 14:23 linuxmi

如圖,名為linuxmi的普通檔案的所屬組從開始的 docker 改變為 mysql 

3.更改檔案許可權

Linux 檔案的基本許可權就有九個,分別是 owner / group / others 三種身份各有自己的 read / write / execute 許可權。

要想更改許可權,有兩種方法,一種是用二進位制數位表示,一種是用字元表示。

1)用數位更改

用數位來代表各個許可權,則:

    讀,許可權是二進位制的100,十進位制是4;

    寫,許可權是二進位制的010,十進位制是2;

    執行,許可權是二進位制的001,十進位制是1;

即:各許可權的對應數位為:r:4,w:2,x:1

每種身份( owner / group / others )各自的三個許可權( r / w / x )數位是需要累加的。

例:

當許可權為: [ -rwxrwx--- ] 時

分數為:

    owner = rwx = 4+2+1 = 7

    group = rwx = 4+2+1 = 7

    others = --- = 0+0+0 = 0

所以當設定許可權的變更時,該檔案的許可權數位就是770。

變更許可權的命令的語法為:chmod [選項] xyz 檔名或目錄名

註:xyz : 就是數位型別的許可權屬性,為 rwx 屬性數值的相加

linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxr-xr-x 2 linuxidc linuxidc 4096 3月  11 15:39 linuxmi
linuxidc@linuxidc:~/linuxidc.com$ sudo chmod 777 linuxmi
[sudo] linuxidc 的密碼:
linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 4
drwxrwxrwx 2 linuxidc linuxidc 4096 3月  11 15:39 linuxmi

如圖,將許可權改為777後,所有身份均具有讀、寫、執行許可權。

2)用字元更改

九個許可權分別是 user、group、others 三種身份的許可權,那麼可用 u、g、o 來代表三種身份的許可權,此外,用 a 代表 all 表示所有的身份。

則變更許可權的命令的語法為:chmod 身份 符號 許可權 檔名或目錄名

如圖,更改許可權

linuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 8
drwxrwxrwx 2 linuxidc linuxidc 4096 3月  11 15:39 linuxmi
-----w--w- 1 linuxidc linuxidc 3287 2月  20 20:29 www.linuxidc.com.gif
linuxidc@linuxidc:~/linuxidc.com$ sudo chmod u=rwx,g=rx,o+x www.linuxidc.com.giflinuxidc@linuxidc:~/linuxidc.com$ ls -l
總用量 8
drwxrwxrwx 2 linuxidc linuxidc 4096 3月  11 15:39 linuxmi
-rwxr-x-wx 1 linuxidc lpadmin  3287 2月  20 20:29 www.linuxidc.com.gif


IT145.com E-mail:sddin#qq.com