1. 程式人生 > 其它 >Linux-2 檔案基本許可權的介紹和作用

Linux-2 檔案基本許可權的介紹和作用

2 檔案基本許可權的介紹和作用

2.1、基本許可權的介紹

(1)許可權位的含義

前面說的ls -l xx.txt或者 ll 命令時,就已經知道長格式顯示的第一列就是檔案許可權的描述,例如:

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ll
-rw-r--r--.  1 root   root   12288 3月  15 19:24 1.txt

第一列不計算., 則共有10位,這10位許可權的含義如下:【最後的點,是在red hat 6 的版本才出現的,表示這個檔案是受SELinux保護的的,對許可權的設定沒有影響】

-          rw-        r--  	r--
型別    所屬使用者許可權   所屬組許可權  其他使用者許可權
							 
第一位:   檔案型別:【d目錄,-普通檔案,l連結檔案】
第2~4位: 所屬使用者許可權,用u(user)表示
第5~7位: 所屬組許可權,用g(group)表示
第8~10位:其他使用者許可權,用o(other)表示
第2~10位:表示所有的許可權,用a(all)表示

1)第1位代表檔案型別
Linux不像Windows使用擴充套件名錶示檔案型別,而是使用許可權位的第1位表示檔案型別。
雖然Linux檔案的種類不像Windows中那麼多,但是分類也不少,詳細情況可以使用info ls命令檢視。
在這裡只講一些常見的檔案型別,如下:

-:普通檔案。
d:目錄檔案。Linux中一切皆檔案,所以目錄也是檔案的一種。
l:軟連結檔案。

b:塊裝置檔案。這是一種特殊裝置檔案,儲存裝置都是這種檔案,如分割槽檔案/dev/sda1就是這種檔案。
c:字元裝置檔案。這也是特殊裝置檔案,輸入裝置一般都是這種檔案,如滑鼠、鍵盤等。
p:管道符檔案。這是一種非常少見的特殊裝置檔案。
s:套接字檔案。這也是一種特殊裝置檔案,一些服務支援Socket訪問,就會產生這樣的檔案。

提示:前三種檔案個是最為常見。其他格式檔案沒事不要碰。

2)第2~4位代表檔案所有者的許可權

r:代表read,是讀取許可權
w:代表write,是寫許可權
x:代表execute,是執行許可權

如果有字母,則代表擁有對應的許可權;如果是-,則代表沒有對應的許可權。

3)第5~7位代表檔案所屬組的許可權
同樣擁有r、w、x許可權,同上。
4)第8~10位代表其他人的許可權
同樣擁有r、w、x許可權,同上。

2)許可權的優先順序

所有者,所屬組,其他使用者許可權的優先順序:

  1. 如果所有者(UID)匹配,使用者許可權適用。
  2. 否則,如果所屬組(GID)匹配,組許可權適用。
  3. 如果都不匹配,其它許可權適用。

匹配優先順序:所有者 > 所屬組 > 其他使用者。

2.2、許可權的基本作用

(1)許可權含義的解釋

首先,讀、寫、執行許可權對檔案和目錄的作用是不同的。
1)許可權對檔案的作用

  • 讀(r):
    對檔案有讀(r)許可權,代表可以讀取檔案中的資料。
    如果把許可權對應到命令上,那麼一旦對檔案有讀(r)許可權,就可以對檔案執行catmorelessheadtail等檔案檢視命令。

  • 寫(w):
    對檔案有寫(w)許可權,代表可以修改檔案中的資料。
    如果把許可權對應到命令上,那麼一旦對檔案有寫(w)許可權,就可以對檔案執行vimecho等修改檔案資料的命令。

    注意:對檔案有寫許可權,是不能刪除檔案本身的,只能修改檔案中的資料。如果要想刪除檔案,則需要對檔案的上級目錄擁有寫許可權。

說明:
我們之前說過分割槽,在root目錄下有一個abc檔案,abc檔案會有自己的i節點,i節點裡邊存放的是i節點號,時間,許可權,位置,與之對應的block塊中存放著資料。而abc檔案的檔名是存放在他上級目錄的block塊中的。上級目錄的block塊中存放著abc檔案的檔名和對應的i節點號。
我對abc檔案有寫的許可權,這個許可權是控制abc檔案的block塊的,所以說對檔案中資料有寫的許可權。而abc檔案的檔名是放在上級目錄的block塊中的,所以也要有上級目錄寫的許可權,才能有對目錄的block塊中的資料有操作許可權,因為abc檔名是root目錄的資料,要擁有root目錄寫的許可權,最終才能刪除abc檔案。
如下圖:

  • 執行(x):
    對檔案有執行(x)許可權,代表檔案擁有了執行許可權,可以執行。
    在Linux中,只要檔案有執行(x)許可權,這個檔案就是執行檔案了。
    這個檔案到底能不能正確執行,不僅需要執行(x)許可權,還要看檔案中的程式碼是不是正確的語言程式碼。
    對檔案來說,執行(x)許可權是最高許可權。

2)許可權對目錄的作用

  • 讀(r):
    對目錄有讀(r)許可權,代表可以檢視目錄下的內容,也就是可以檢視目錄下有哪些子檔案和子目錄。
    如果把許可權對應到命令上,那麼一旦對目錄擁有了讀(r)許可權,就可以在目錄下執行ls命令,檢視目錄下的內容了。
  • 寫(w):
    對目錄有寫(r)許可權,代表可以修改目錄下的資料,也就是可以在目錄中新建、刪除、複製、剪下子檔案或子目錄。
    如果把許可權對應到命令上,那麼一旦對目錄擁有了寫(w)許可權,就可以在目錄下執行touchrmcpmv命令。
    對目錄來說,寫(w)許可權是最高許可權。
  • 執行(x):
    目錄是不能執行的,那麼對目錄擁有執行(x)許可權,代表可以進入目錄。
    如果把許可權對應到命令上,那麼一旦對目錄擁有了執行(x)許可權,就可以對目錄執行cd命令,進入目錄。(也就是執行許可權對於目錄來講沒有危險)

(2)目錄許可權說明

目錄的可用許可權其實只有以下幾個:

  • 0:任何許可權都不賦予
  • 5:基本的目錄瀏覽和進入許可權
  • 7:完全許可權

因為給目錄只賦予讀的許可權是沒有意義的,也就是4。因為你要現有執行許可權才能進入到目錄裡,才有檢視目錄的操作,也就是4+1。

注意:自己做實驗的時候不要用root使用者,用普通使用者進行操作。