檔案與資料夾權限

在 Linux 中,檔案與資料夾都有其對應的權限,可以嘗試在根目錄 / 底下輸入指令 ls -l 來列出根目錄底下所有檔案或資料夾,以及它們各自的權限。

ls -l

# lrwxrwxrwx   1 root root    7 Jun 27 14:08 bin -> usr/bin
# ...

# lrwxrwxrwx     代表權限
# 1              代表連結數
# root           代表使用者
# root           代表群組
# 7              代表檔案大小
# Jun 27 14:08   代表檔案上次修改的時間
# bin -> usr/bin 檔案名稱,因為該檔案是連結檔案,所以用 -> 指向被連結檔案的實際位置

讀、寫與執行權限

詳細解釋第一行顯示的資訊中,lrwxrwxrwx 所代表的意思。這個字串我們可以分成四個部分來看。即 lrwxrwxrwx

  • l 代表這個檔案是個連結,被連結的檔案在其他地方。如果是單純的檔案,這裡會顯示 -,如果是資料夾的話,這裡會顯示 d
  • 後面三個 rwx 分別代表的是這個檔案的使用者 (User)群組 (Group)其他人 (Others) 所擁有的權限。
  • 檔案與資料夾的 rwx 會代表不同的意思,我們先以檔案為例:
    • r 的意思是讀,代表擁有讀取檔案內容的權限。
    • w 的意思是寫,代表擁有修改檔案內容的權限,但注意!並不包含刪除檔案
    • x 的意思是執行,代表擁有執行檔案的權限。

剛剛提到檔案與資料夾的 rwx 代表不同的意思,這裡簡單列個表格來說明。

  檔案 資料夾
r 讀取檔案 列出資料夾底下所有檔案名稱
w 修改檔案 在資料夾底下新增檔案、修改檔案名稱以及刪除檔案
x 執行檔案 可以進入該資料夾

修改權限

你可以使用 chmod 可以用來修改檔案的權限。需要先知道的是,rwx 可以使用數字來代替。

  • r 是 4
  • w 是 2
  • x 是 1

假設我想讓一個檔案能被使用者與群組讀取,但只有使用者擁有編輯的權限,可以這樣下指令:

# 這裡的 6 代表 4 + 2,即讀取數字與編輯數字相加
chmod 640 example.txt

# 如果不想背數字,有另外一種方式較為直觀的表達方式
chmod u=rw,g=r,o= example.txt

如果想修改資料夾的權限也是一樣的方式,但如果想修改資料夾底下所有檔案的權限,可以加上 -R 參數。

chmod 750 example/ -R

除了 chmod 你可以使用 chown 來修改檔案的使用者與群組。

chown allen:staff example.txt

# 當然也可以使用 -R 來修改資料夾底下所有檔案的使用者與群組
chown allen:staff example/ -R

參考資料


This site uses Just the Docs, a documentation theme for Jekyll.