使い方
- umaskの値(例: 022)を入力すると、新規作成されるファイルとディレクトリの権限が8進数・記号表記の両方で表示される。
- よく使う値はプリセットボタン(022 / 027 / 077 / 002)から選べる。
- 下部のチェックボックスで「新規ディレクトリに与えたい権限」を指定すると、対応するumaskを逆算できる。
- 逆算結果の「計算されたumask」は「コピー」ボタンでコピーできる。
仕組み・計算式
umask の値は、新規作成物に対して「デフォルトから禁止するビット」を8進数で表したもの。man 1 umask(bashの組み込みコマンド)や man 2 umask に定義される通り、実際の権限は次の式で決まる。
新規ファイルの権限 = 0666 & ~umask
新規ディレクトリの権限 = 0777 & ~umask
各桁(所有者・グループ・その他)ごとに3ビット単位でAND NOT演算を行う。たとえば umask 022 の環境では、所有者は0(禁止なし)、グループとその他は2(書き込みを禁止)なので、ファイルは 666 & ~022 = 644、ディレクトリは 777 & ~022 = 755 になる。逆算では、欲しい権限(0〜7の各桁)をビット反転すればumaskの各桁が得られる(umask = ~希望権限 & 7)。ただしディレクトリの上限は777でファイルの上限は666と異なるため、逆算はディレクトリ権限を基準にしている。
現場の落とし穴: ファイルの基準値は666(rw-rw-rw-)であり、umaskをどう設定しても新規ファイルに実行ビット(x)が付くことはない。これはumaskが「ビットを消す」働きしかできず、元々666に含まれていないx(1の位)を追加できないため。テキストエディタで保存したスクリプトがそのままでは実行できず chmod +x が別途必要になるのはこの仕組みによるもので、umaskの不具合ではない。またumaskはシェルの設定(.bashrcや/etc/profile、/etc/login.defsのUMASK)に依存し、ログインシェル経由かどうかやディストリビューションのデフォルト(022または002)によって新規ファイルの権限が変わる点にも注意したい。
よくある質問
Q. umaskを077にするとどうなりますか?
A. グループとその他の全ビットを禁止するため、新規ファイルは600、新規ディレクトリは700になり、所有者以外はアクセスできない。個人用のホームディレクトリなどでよく使われる。
Q. すでに存在するファイルの権限もumaskで変わりますか?
A. 変わらない。umaskは新規作成時にのみ適用され、既存ファイルの権限を変更するにはchmodを使う必要がある。
Q. umask 002 と 022 の違いは何ですか?
A. 002はグループの書き込みを許可したまま(新規ファイル664)で、複数人が同じグループで共同編集する用途向け。022はグループにも書き込みを許可しない(新規ファイル644)ため、単一ユーザー運用やWebサーバーなど権限を絞りたい場面で使われることが多い。
関連ツール
最終更新・根拠の確認日: 2026-09-10 · カテゴリ: Linux・サーバー