本文へ移動
QKQuickKitEN
LinuxLOCALブラウザ内で処理

umask 計算機

8進数またはシンボリック形式の umask から、新規作成されるファイルとディレクトリの既定パーミッションを計算します。

入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。

結果

仕組みと使い方

このツールは、ファイルには 0666、ディレクトリには 0777(プログラムが open(2) / mkdir(2) に通常渡す値)が要求されたと仮定し、umask を適用した後に残るパーミッションビット(mode AND NOT umask)を表示します。umask を引き算で計算しないでください。よく知られた 0666 - umask / 0777 - umask は、umask の各ビットが要求モードに含まれていて借りが発生しない場合にしか実際の結果と一致しません。たとえば 0666 に umask 0111 を適用すると 0555 ではなく 0666 になります。シンボリック形式(umask -S の出力)は「残るビット」を表し、8進数形式は「取り除かれるビット」を表します。umask が持つのは9ビットのパーミッションビットだけです。umask(2) は mask & 0777 を保存するため、4022 の先頭の 4 のような setuid/setgid/sticky の桁は、シェルの umask 組み込みコマンドと同様に受け付けたうえで捨てられます。open(..., 0600) のように別のモードを要求するプログラムでは結果が異なります。また ACL・マウントオプション・setgid が継承されるディレクトリなどによって最終結果が変わる可能性があり、これらは考慮していません。