Linux以其強大而可靠的作業系統而聞名,它具有無與倫比的安全性、穩定性和靈活性。為了維護系統的完整性和安全性,Linux以 “許可權” 的形式實現了特定設定。這些許可權控制誰可以訪問、修改或執行檔案和目錄。無論你是一個新的Linux使用者還是一個經驗豐富的老手,瞭解Linux的許可權對於一個安全的系統是極其重要的。在這篇文章中,我們將深入探討什麼是Linux許可權,以及如何以最佳方式保持你的檔案和目錄的安全。
瞭解Linux的許可權
Linux檔案許可權是允許使用者控制誰可以訪問他們的檔案的特定設定。在Linux中,每個檔案或目錄都有一組許可權,分佈在三個級別的系統使用者中:
- User:使用者,這是指檔案或目錄的所有者。一般來說,建立檔案/目錄的使用者是所有者。
- Group:組,一個組是多個使用者的集合,對一個檔案或目錄具有相同的許可權。
- Others:其他,每一個既不是所有者也不是組的成員的其他使用者都屬於這個類別。
這些使用者中的每一個都有三種型別的檔案許可權,決定了使用者可以執行的不同型別的操作:
- Read (r):讀取,允許使用者檢視一個檔案或目錄的內容。對於一個檔案,讀許可權意味著使用者可以列印和複製檔案的內容。如果是目錄,有了讀的許可權,使用者可以檢視和複製目錄中的檔案。
- Write (w):寫入,允許使用者修改檔案/目錄的內容。當為一個使用者設定了寫許可權時,該使用者可以新增、刪除甚至重新命名檔案或目錄。
- Execute (x):執行,允許使用者執行檔案或訪問目錄。這與我們在Windows上看到的情況形成鮮明對比,可執行檔案有一個”.exe” 副檔名,使用者可以簡單地執行它。但在Linux中,如果檔案對使用者來說有可執行的許可權,那麼使用者才可以執行它。
- Dash (-):破折號,它意味著沒有設定許可權或沒有許可權。
如何檢視Linux中的檔案許可權
現在你知道了Linux中存在哪些檔案許可權,讓我們看看如何檢視授予檔案的許可權。檢視檔案許可權是非常容易的,你只需要使用這個命令:
ls -l
一旦你執行這個命令,你將看到當前位置的所有檔案和目錄的列表。你的輸出將類似於下面的螢幕截圖:
看起來很混亂?讓我們試著用一個例子來理解這個問題:
在上述例子中:
- 第一個字元(-)表示檔案型別;’
-
‘表示該專案是一個檔案,’d
‘表示一個目錄。 - 接下來的九個字元指定了該條目的許可權設定(後面會有更多介紹)。
- 接下來的數字顯示了該檔案的連結數。預設情況下,該專案將有1。
- 下一欄顯示了檔案所有者的名字。
- 接著下一欄顯示哪個組對該檔案有訪問權。
- 倒數第三欄顯示了檔案的大小。
- 倒數第二欄顯示了檔案的最近修改時間。
- 最後一欄顯示檔案/目錄的名稱。
在簡化了 ls-l
命令的輸出後,讓我們用” rwxr-xr--
“的樣本許可權集來展開許可權部分:
- 這裡,前3個字元,’
rwx
‘表示檔案所有者有讀(r),寫(w),和可執行(x)的許可權。 - 接下來的3個字元,’
r-x
‘表示組內使用者有讀取(r)和可執行(x)的許可權,但沒有寫入許可權(-)。 - 最後3個字元,’
r--
‘表示所有其他使用者只有讀(r)許可權。最後的兩個破折號表示沒有許可權(在這種情況下沒有寫和執行的許可權)。
因此,總的來說,前3個字元表示檔案所有者的許可權;第二組3個字元表示組內使用者的許可權,最後3個字元表示其他使用者的許可權。
如何改變Linux中的檔案許可權
要改變Linux中的檔案許可權,我們使用chmod命令,它代表了 “change mode”。使用chmod命令的基本語法是:
chmod <options> <permissions> <filename>
你可以與chmod搭配的一些命令選項是:
選項 | 描述 |
---|---|
-v |
為每個被處理的檔案顯示診斷資訊 |
-c |
與 -v 的工作原理相同,只是如果有任何改變,它只顯示一個診斷資訊。 |
-f |
用來抑制大多數錯誤資訊。 |
-R |
用來遞迴地改變檔案和目錄。 |
對於<許可權>部分,你可以使用兩種方法中的任何一種:
- 絕對模式
- 符號模式
chmod中的絕對模式
在這種模式下,許可權是用1到7的3位數的組合(也稱為八進位制數)來指定的。這裡,第一個數字對應於檔案所有者,第二個數字對應於組使用者,第三個數字對應於其他使用者。在絕對模式下指定許可權的基本語法是::
chmod <options> <permission_combination> <file_name>
你可以使用不同的數字組合來獲取許可權:
許可權型別 | 數字 |
---|---|
無許可權 | 0 |
執行 | 1 |
寫入 | 2 |
寫入 + 執行 | 3 (i.e. 2+1) |
讀取 | 4 |
讀取 + 執行 | 5 (i.e. 4+1) |
讀取 + 寫入 | 6 (i.e. 4+2) |
讀取 + 寫入 + 執行 | 7 (i.e. 4+2+1) |
讓我們看一個例子,使之更容易理解。假設你想為 “test.txt” 檔案的所有使用者設定讀、寫和執行的許可權,那麼使用這個命令:
chmod -v 777 test.txt
這是一個在Linux系統中相當頻繁使用的命令,因此,我們準備了一份詳細的指南,說明在Linux中chmod 777的含義。
如果你想為檔案所有者設定只讀許可權,而對組和其他使用者沒有許可權,你可以使用這個命令:
chmod -v 400 test.txt
chmod中的符號模式
絕對模式的主要問題是你總是要為所有的使用者提供許可權設定,即使你需要為一個使用者修改。
這就是符號模式開始發揮作用的地方。符號模式是比較常用的,因為它使用字母而不是數字,大多數使用者認為這很難理解。除了便於使用者使用外,你還可以用符號模式只為某個特定的使用者設定許可權,這與絕對模式不同。在chmod中使用符號模式改變檔案許可權的基本語法是:
chmod <options> <user_type><symbol><permission_set> <file_name>
在上面的語法中:
- <user_type>指定了你要為之設定許可權的使用者型別。
- <symbol>指的是’-‘、’+’和’=’,分別表示’刪除’、’新增’和’等價’。
- <permission_set>指的是你想為使用者設定的許可權。
在符號模式下,你可以將<user_types>指定為:
- 檔案所有者為’u’
- 群組使用者為’g’
- 其他使用者為’o’
- 所有使用者(三者的組合)為’a’或’ugo’。
對於<permission_set>部分,你可以使用以下任一組合:
許可權型別 | 符號 |
---|---|
無許可權 | — |
執行 | -x |
寫入 | -w- |
寫入 + 執行 | -wx |
讀取 | r- |
讀取 + 執行 | r-x |
讀取 + 寫入 | rw- |
讀取 + 寫入 + 執行 | rwx |
現在讓我們看看一些例子,看看我們如何在Linux中使用符號模式設定許可權。假設你想為組設定執行許可權,那麼使用這個命令:
chmod -v g+x test.txt
你甚至可以為不同的使用者型別設定多個許可權。例如,你想從其他使用者型別中刪除執行許可權,併為檔案所有者增加讀、寫和執行許可權:
chmod o-x,u+rwx test.txt
在Linux中改變檔案/目錄的所有者和組
假設你需要擁有所有的許可權,但又不想與組內的使用者分享許可權。在這種情況下,你可以使用 chown
(改變所有者)命令來改變檔案所有者。改變所有者的語法非常簡單:
chown <new_user_name> <filename_or_directory_name>
例如,如果你想把檔案test.py的所有者改為root,你可以使用這個命令:
sudo chown root test.py
注意:為了改變檔案所有者,你需要有root許可權。如果你沒有root許可權,那麼只需使用 ” sudo
” 命令來獲得root許可權。
如果你需要改變一個檔案的組,使用 chgrp
命令:
chgrp <new_group_name> <filename_or_directory_name>
例如,如果你想把組改為test,使用 chgrp
命令:
sudo chgrp test test.txt
注意:沒有兩個組可以是同一個檔案/目錄的所有者。如果你想知道如何將一個新的使用者新增到一個組,請檢視我們關於如何將一個新使用者新增到一個組的指南。
管理檔案許可權是最重要的,特別是在多使用者環境中。通過定期檢查你的Linux系統上的檔案許可權,你可以確保你的敏感檔案保持安全,不被人窺視。我們希望這篇文章能幫助你理解這個基本概念,如果你有任何疑問,請在評論中告訴我們。
評論留言