詳細記錄 mac 系統下使用 chmod 命令修改檔案許可權

亦楓發表於2017-10-19

前言:最近安裝 Jenkins 的過程中又使用到在 Mac 系統上修改檔案許可權的操作命令,之前查過 chmod 命令的使用,幾天不用又忘到九霄雲外。一氣之下,記錄於此,便於後續備忘查詢。有需要的,不妨拿去參考。

PC 端修改檔案訪問許可權算是比較常用的操作,在安裝部分軟體時經常需要使用到。在 Mac 系統的終端上修改檔案許可權使用的是 Linux 中的 chmod 命令。這裡詳細介紹一下該命令的相關使用。

也可以直接通過 man chmod 在終端工具上檢視該命令的幫助手冊。

檢視檔案許可權


ls -l 命令可以檢視當前目錄下所有檔案的訪問許可權,也可以檢視指定檔案。比如,檢視 Tomcat bin 目錄中的 startup.sh 檔案的訪問許可權時:

yifeng:bin yifeng$ ls -l startup.sh
-rwxrwxrwx@ 1 yifeng  staff  1904  9 27 18:32 startup.sh複製程式碼

上面列印的檔案資訊中每一部分所代表的含義,分別對應如下解釋:

檔案型別和訪問許可權 檔案數量 所屬使用者 所在群組 檔案大小 修改日期(月 日 時 分) 檔名稱複製程式碼

第一部分詳細說明一下,就以 “-rwxrwxrwx” 為例:第一個符號代表檔案型別, “-” 符號表示該檔案是非目錄型別,“d” 符號表示目錄型別;( 末尾的 @ 符號表示檔案擴充屬性,屬於檔案系統的一個功能。)

後面九個字母分為三組,從前到後每組分別對應所屬使用者(user)、所屬使用者所在組(group)和其他使用者(other)對該檔案的訪問許可權;

每組中的三個字元 “rwx” 分別表示對應使用者對該檔案擁有的可讀/可寫/可執行許可權,沒有相應許可權則使用 “-” 符號替代。

修改訪問許可權


根據上面檢視許可權部分的介紹,修改許可權也應包括訪問使用者、新增或取消操作、具體許可權和訪問檔案,即:

chmod 使用者+操作+許可權 檔案複製程式碼

使用者部分:使用字母 u 表示檔案擁有者(user),g 表示擁有者所在群組(group),o 表示其他使用者(other),a 表示全部使用者(all,包含前面三種使用者範圍);

操作部分:“+” 符號表示增加許可權,“-” 符號表示取消許可權,“=” 符號表示賦值許可權;

許可權部分:“r” 符號表示可讀(read),“w” 表示可寫(write),“x” 表示可執行許可權(execute);

檔案部分:如不指定檔名,表示操作物件為當前目錄下的所有檔案。

還以前面 startup.sh 檔案為例,將擁有者所在群組和其他使用者改為可讀可寫許可權、取消可執行許可權的使用方式為:

chmod go-x startup.sh複製程式碼

然後使用 ls 命令檢視許可權,

yifeng:bin yifeng$ ls -l startup.sh
-rwxrw-rw-@ 1 yifeng  staff  1904  9 27 18:32 startup.sh複製程式碼

可以看到,檔案訪問許可權已經按照要求發生對應變化。

如果是複雜一點操作的話,可以同時使用多種操作符新增和取消許可權,並且可以使用 “,” 符號同時對不同使用者範圍修改許可權,比如:

chmod g+x,o+x-w startup.sh複製程式碼

還有一種簡單的寫法,使用數字表示許可權部分的讀/寫/可執行許可權型別。數字和許可權型別的對應關係,可以從這張圖中直觀地看出來:

即,1 表示可執行,2 表示可寫,4 表示可讀。每種型別數字相加所得到的值表示交叉部分的公共型別。

這樣的話,使用三個數字便可以分別代表三種不同使用者型別的許可權修改結果。比如,修改所有使用者的訪問許可權均為可讀可寫可執行(rwx)的話,這樣使用即可:

chmod 777 startup.sh複製程式碼

三個數字從前到後分別表示 u、g、o 三種使用者型別的訪問許可權,使用時按需修改。

補充一點,有時候需要遞迴修改目錄檔案及其子目錄中的檔案型別,可以使用 -R 選項。

關於我:亦楓,部落格地址:yifeng.studio/,新浪微博:IT亦楓

微信掃描二維碼,歡迎關注我的個人公眾號:安卓筆記俠

不僅分享我的原創技術文章,還有程式設計師的職場遐想

相關文章