檔案與資料夾權限
在 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 所代表的意思。這個字串我們可以分成四個部分來看。即 l、rwx、rwx、rwx。
l代表這個檔案是個連結,被連結的檔案在其他地方。如果是單純的檔案,這裡會顯示-,如果是資料夾的話,這裡會顯示d。- 後面三個
rwx分別代表的是這個檔案的使用者 (User)、群組 (Group) 與其他人 (Others) 所擁有的權限。 - 檔案與資料夾的
rwx會代表不同的意思,我們先以檔案為例:r的意思是讀,代表擁有讀取檔案內容的權限。w的意思是寫,代表擁有修改檔案內容的權限,但注意!並不包含刪除檔案。x的意思是執行,代表擁有執行檔案的權限。
剛剛提到檔案與資料夾的 rwx 代表不同的意思,這裡簡單列個表格來說明。
| 檔案 | 資料夾 | |
|---|---|---|
r | 讀取檔案 | 列出資料夾底下所有檔案名稱 |
w | 修改檔案 | 在資料夾底下新增檔案、修改檔案名稱以及刪除檔案 |
x | 執行檔案 | 可以進入該資料夾 |
修改權限
你可以使用 chmod 可以用來修改檔案的權限。需要先知道的是,r、w 與 x 可以使用數字來代替。
r是 4w是 2x是 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