chmod 是什麼 ?
chmod 是一個 Linux系統 中用於控制使用者對檔案的權限的命令(change mode單詞字首的組合),要使用chmod之前須先了解 Linux中的檔案權限是如何設計的。
Linux 檔案權限教學
當在 Liunx 執行 ls -al 可看見每個檔案所擁有的權限,如下圖
第一個字元
代表這個檔案是『目錄、檔案或連結檔等等』:
- 當為[ d ]則是目錄
- 當為[ – ]則是檔案
- 若是[ l ] 則表示為連結檔 (link file);
- 若是[ b ]則表示為裝置檔裡面的可供儲存的周邊設備(可隨機存取裝置);
- 若是[ c ]則表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠(一次性讀取裝置)。
接下來的 rwx
[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 這三個權限的位置不會改變,如果沒有權限,就會出現減號[ – ]而已。
- 第一組為『檔案擁有者可具備的權限』
- 第二組為『加入此群組之帳號的權限』
- 第三組為『非本人且沒有加入本群組之其他帳號的權限』
rwx 所代表的數字及意義
r=4,w=2,x=1
若要rwx屬性則 4+2+1=7; 若要rw-屬性則4+2=6 ; 若要r-x屬性則4+1=5。
chmod 怎麼用? 有兩種使用方式
chmod 有兩種使用方式,本人在使用的時候比較偏向於使用數字,但兩種方式都可以瞭解一下,什麼都略懂生活更加多采
chmod 常用參數介紹
chomd 參數選項 | 描述 |
---|---|
-R (recursive) | 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案都 |
數字類型改變檔案權限
# 將 README.txt 權限設定成 使用者,群組, 其它使用者都能RWX chmod 777 README.txt
# 將 README.txt 權限設定成 使用者,群組 都能RWX, 其它使用者RW chmod 775 README.txt
# 將 /var/logs/* 底下所有權限設定成 使用者,群組 都能RWX, 其它使用者RW chmod -R 775 /var/logs/
符號類型改變檔案權限
基本上(1)user (2)group (3)others三種身份藉由u, g, o來代表三種身份的權限!此外, a 則代表 all 亦即全部的身份!讀寫的權限就可以寫成r, w, x
# 將 README.txt 權限設定成 使用者,群組 都能RWX, 其它使用者RW chmod ug=rwx,o=rw README.txt
# 將 README.txt 權限設定成 使用者,群組, 其它使用者都能RWX chmod a=rwx README.txt
當如果不清楚原本的設定權限時,採用 +, – 的方式是比較正確的,以免動到權限導致系統或是其它使用者出現異常狀況
# 將 README.txt 加上,所有使用者皆能夠執行的權限 chmod a+x README.txt
# 將 README.txt 移除,其它使用能夠執行的權限 chmod o-x README.txt
# 將 README.txt 加上,擁有者夠讀取的權限 chmod u+r README.txt
# 將 /var/logs/* 底下所有權限設定成 使用者,群組 都能RWX, 其它使用者RW chmod -R ug=rwx,o=rw /var/logs/
參考資料:computerhope、Linuxize、wikipedia