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