1、基本權限的介紹
(1)權限位的含義
前面講解ls
命令時,我們已經知道長格式顯示的第一列就是文件權限的描述,例如:
[root@localhost ~ ] # ls -l install.log
-rw-r--r--. 1 root root 24772 1月 14 18:17 install.log
第一列的權限位如果不計算最后的.
(最后的.
是在Red Hat 6
的版本才開始出現的。表示這個文件是受SELinux
保護的。對權限的設置沒有影響。),則共有10位,這10位權限位的含義如下圖所示:
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)權限的優先級
所有者,所屬組,其他用戶權限的優先級:
- 如果所有者(UID)匹配,用戶權限適用。
- 否則,如果所屬組(GID)匹配,組權限適用。
- 如果都不匹配,其它權限適用。
匹配優先級:所有者>所屬組>其他用戶。
2、權限的基本作用
(1)權限含義的解釋
首先,讀、寫、執行權限對文件和目錄的作用是不同的。
1)權限對文件的作用。
-
讀(
r
):
對文件有讀(r
)權限,代表可以讀取文件中的數據。
如果把權限對應到命令上,那么一旦對文件有讀(r
)權限,就可以對文件執行cat
、more
、less
、head
、tail
等文件查看命令。 -
寫(
w
):
對文件有寫(w
)權限,代表可以修改文件中的數據。
如果把權限對應到命令上,那么一旦對文件有寫(w
)權限,就可以對文件執行vim
、echo
等修改文件數據的命令。
注意:對文件有寫權限,是不能刪除文件本身的,只能修改文件中的數據。如果要想刪除文件,則需要對文件的上級目錄擁有寫權限。說明:
我們之前說過分區,在
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
)權限,就可以在目錄下執行touch
、rm
、cp
、mv
命令。
對目錄來說,寫(w
)權限是最高權限。 - 執行(
x
):
目錄是不能運行的,那么對目錄擁有執行(x
)權限,代表可以進入目錄。
如果把權限對應到命令上,那么一旦對目錄擁有了執行(x
)權限,就可以對目錄執行cd
命令,進入目錄。(也就是執行權限對於目錄來講沒有危險)
(2)目錄權限說明
目錄的可用權限其實只有以下幾個:
- 0:任何權限都不賦予。
- 5:基本的目錄瀏覽和進入權限。
- 7:完全權限。
因為給目錄只賦予讀的權限是沒有意義的,也就是4。因為你要現有執行權限才能進入到目錄里,才有查看目錄的操作,也就是
4+1
。
注意:自己做實驗的時候不要用
root
用戶,用普通用戶進行操作。