初期パーミッションを指定するUNIXコマンド。
現在のユーザーがファイルやディレクトリを作る際の、初期パーミッションの為のマスクを指定する。
ファイル作成時のデフォルトパーミッションは666、ディレクトリは777であり、この数値と「umaskで指定されたマスクの論理否定」との論理積が、ファイルやディレクトリ作成時の最終的なパーミッションとなる。
パーミッション = デフォルト値 & ~umask; ←C言語風
マスクはchmodと同じように、3桁の八進数での指定と文字列での指定が出来る。
設定したマスクは、それ以降にファイルやディレクトリを作成したときに有効となる。
マスク設定以前に実行開始していたプロセスには影響ない。[2006-05-27]
そもそも同一ユーザーであっても、別シェルから実行していれば別のumaskが指定できるんだし…。
マスクを指定しないと、現在のマスクが表示される。
$ umask 022
八進数で指定する場合は、「許可しない権限」にビットを立てる。
$ umask 023 $ umask 023
文字列で指定する場合は、chmodと同じように権限を指定する。
$ umask o-x $ umask 023 $ umask o+x $ umask 022
$ umask u=rwx $ umask go=rx $ umask 022