顯示或設置創建文件的權限掩碼。
umask [-p] [-S] [mode]
mode(可選):八進制數或符號組合。
-p:當沒有參數時指定該選項,執行產生的輸出格式可復用為輸入;
-S:以符號組合的方式輸出創建文件的權限掩碼,不使用該選項時以八進制數的形式輸出。
返回狀態為成功除非給出了非法選項或非法參數。
以下的例子均假設文件權限掩碼為0022。
# 以八進制數的形式輸出創建文件的權限掩碼。
umask -p
# 執行結果:
umask 0022
# 以符號組合的方式輸出創建文件的權限掩碼。
umask -S
# 執行結果:
u=rwx,g=rx,o=rx
參考
man chmod
文檔的DESCRIPTION
段落得知:
u
符號代表當前用戶。g
符號代表和當前用戶在同一個組的用戶,以下簡稱組用戶。o
符號代表其他用戶。a
符號代表所有用戶。r
符號代表讀權限以及八進制數4
。w
符號代表寫權限以及八進制數2
。x
符號代表執行權限以及八進制數1
。+
符號代表添加目標用戶相應的權限。-
符號代表刪除目標用戶相應的權限。=
符號代表添加目標用戶相應的權限,刪除未提到的權限。
那么剛才以符號形式輸出的結果u=rwx,g=rx,o=rx
轉化為八進制數等于0755
;
用八進制數來設置同樣的權限,umask
需要額外的執行減法0777 - 0755
即0022
,而chmod
不需要。
符號組合模式的添加、刪除、賦值權限。
# 添加權限:
# 為組用戶添加寫權限。
umask g+w
# 刪除權限:
# 刪除其他用戶的寫、執行權限
umask o-wx
# 賦值權限:
# 賦值全部用戶所有權限,等價于umask u=rwx,g=rwx,o=rwx
umask a=rwx
# 清除其他用戶的讀、寫、執行權限。
umask o=
創建文件夾、文件(假設當前目錄不存在)
# 創建文件
touch test.sh
# 查看權限,發現執行權限的設置不起作用。
stat test.sh
# 創建文件夾
touch newdir
# 查看權限,發現執行權限的設置可以起作用。
stat newdir
該命令是bash內建命令,相關的幫助信息請查看help
命令。
chmod
用于更改已有對象的權限,umask
影響之后新建對象的權限。
請謹慎使用該命令,特別是不要取消當前用戶的讀取權限,那樣會導致你在終端使用TAB
鍵補全時報錯。