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文件。
如下圖:

image-20220318160656733
  • 執行(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用戶,用普通用戶進行操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章