umask計算機
umask 022では、新しいファイルは644(rw-r--r--)、新しいフォルダーは755(rwxr-xr-x)になります。umaskを入れると既定の権限が8進数とrwx表記で分かり、シェル設定を変える前に確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- umask (パーミッションマスク)
- 022
- umask (8進数)
- 022
- umask (数値)
- 18
- umask (記号)
- ----w--w-
- ファイルの基準値 (8進数)
- 666
Unix系の各プロセスはumaskを持ち、作成するすべての新規ファイルとディレクトリの権限を静かに決めます。カーネルは基底モード(通常ファイルは0666、ディレクトリは0777)から始め、umaskで立っている各ビットを消し、マスクは権限ビットを足すのではなく引きます。開発者、SRE、学習者はシェル設定やコンテナイメージを直す前に、よくこう問います。umaskが022、002、077なら、新規のファイルとフォルダは実際にどのモードになるか。このumaskから権限への計算機は、1〜4桁の8進数字としてマスクを受け取り、mode = base & ~umaskの古典式を適用し、ファイル経路とディレクトリ経路の両方について8進、記号rwx、数値の各形式を返します。
umaskが基底の作成モードからビットを引く仕組み
プログラムが通常ファイルを作るとき、OSは基底モード0666(所有者・グループ・その他の読み書き、実行ビットなし)を提案します。ディレクトリを作るときは基底が0777で、既定で入室と一覧ができるようにします。ビットが確定する前に、カーネルはプロセスumaskのビット単位の補数と基底のANDを計算します。
umaskで1のビットは結果で強制的に0になり、umaskで0のビットは基底どおり残ります。だからumask 022はファイル基底0666を0644に、ディレクトリ基底0777を0755に変えます。グループとその他の書き込みが消え、所有者は完全な権利を保ち、ディレクトリの実行ビットは全員に残ります。
より厳しいumask 077はグループとその他を完全に消し、ファイル0600とディレクトリ0700になります。緩いumask 002は他者書き込みだけを消し、共有プロジェクト向きのファイル0664とディレクトリ0775を得ます。この引き算モデルを理解すると、umaskを直接設定する目標モードと誤解する誤りを防げます。
umaskは基底を超えるビットを与えず、通常ファイルに実行ビットを発明もしません。0666に元から無いからです。
入力できる値と結果の読み方
任意の0oまたは0O接頭辞は除去されます。本機能の範囲は9個の権限ビットです。0777を超える特殊ビットマスクは黙って切り詰めず拒否します。
formula文字列は二つの基底名付きでmode = base AND NOT umaskを再述し、クライアントが数値の横に恒等式を表示できます。例:umask 022はファイル644(rw-r--r--)とディレクトリ755(rwxr-xr-x)になります。
短いマスク上の純粋な算術なので、成功した呼び出しはすべてNode、無料ブラウザ経路、エッジワーカーで再現可能です。
umask権限計算機が役立つ場面
コンテナやイメージの作者はDockerfileやエントリポイントでumaskを固定し、出荷前に結果の既定モードがセキュリティレビューと一致するか第二意見が必要です。共有LinuxワークステーションとCIエージェントは社内umaskを文書化し、成果物が世界書き込みではなく644/755になるようにします。
本ツールはその方針の桁をランブックやオンボーディング向けの明示モードに変えます。POSIX権限を教える教室はumaskの授業とライブ変換を組み合わせ、なぜ022が対話の常用既定で、なぜ077が私的ホームに向くかを学生に見せます。
グループ書き込みの秘密を禁じるセキュリティチェックリストは、意図した共同作業を残しつつ最も厳しいマスクを、rwx列を手で数えることなく計算できます。
活用例
コンテナとイメージの堅牢化メモ
Dockerfileのumaskを、マージ前にレビュー担当が期待するファイルとディレクトリの正確な既定モードへ変換します。
共有ワークステーションとCIの方針
社内umask 022または002を、新規成果物の具体的な既定644/755または664/775として文書化します。
POSIX教室と試験対策
学生にumaskを入力させ、base AND NOTマスク規則に照らしてファイルとディレクトリの結果を確認させます。
よくある質問
umaskが000なのに新規ファイルが777にならないのはなぜですか?
通常ファイルは基底0666から始まり0777ではありません。ゼロumaskでもファイルは666、ディレクトリは777です。通常ファイルに実行ビットは発明されません。
受け付けるumask形式は?
1〜4桁の8進数字(0–7)の文字列で、任意で0o接頭辞を付けられます。
umaskを既定の権限に変換するにはどうしますか?
基本の権限から、umaskで1になっているビットを取り除きます。ファイルの基本は0666、ディレクトリは0777なので、umask 022ならファイルは0644、ディレクトリは0755になります。
umask 077ではどんな権限になりますか?
所有者だけの権限になります。グループとその他のビットをすべて外すため、新しいファイルは0600、ディレクトリは0700になり、所有者以外は読み書きも中に入ることもできません。
共有のプロジェクトフォルダーにはどのumaskが向いていますか?
umask 002はその他の書き込みだけを外すため、ファイルは0664、ディレクトリは0775になります。グループのメンバーは互いの作業を編集でき、それ以外の人は読むだけになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/umask-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"umask":"022"}'const res = await fetch("https://api.kit.forhosting.com/dev/umask-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"umask": "022"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/umask-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"umask": "022"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/umask-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"umask":"022"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"umask":"022"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/umask-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"umask": "022"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.umask_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力契約、応答フィールド、検証規則
必須フィールドはumask一つだけで、022、0022、77、0のような1〜4桁の8進数字の文字列としてJSON本体を送ってください。成功時は正規化した3桁のumask_octal、10進のumask_numeric、マスク自身が持つビットを示す9文字rwxのumask_symbolicを返します。並列フィールドはファイル経路(file_base_octalは666固定、file_mode_octal、file_mode_symbolic、file_mode_numeric)と、dir_base_octalを777固定にしたディレクトリ経路の対応モードを示します。エンドポイントはchmodを呼ばず、プロセス状態を読まず、ACLやstickyビットの意味論も作りません。
umask権限計算機が役立つ場面
実装は純粋なparseティアAのため、成功したAPI呼び出しは公開の基本料金$0.002で、モデルトークンも外向き通信もなく、無効入力は課金されません。要求を短い8進文字列に保ち、テストで8進と記号フィールドを固定すれば、文書、LMSプラグイン、Infrastructure as Code生成器のための安定した神託が得られ、完全な権限管理スイートを立てる必要はありません。
技術的な質問
umaskを既定権限にどう変換しますか?
022のような8進数字としてumaskを送ってください。APIはファイルモードを0666 & ~umaskから、ディレクトリモードを0777 & ~umaskから返し、それぞれ8進・記号・数値形式になります。
シェルやサーバのumaskは変わりますか?
いいえ。結果モードを計算するだけです。umask(2)、chmod、ファイルシステムAPIは一切呼び出しません。
umask計算機の料金は?
ブラウザ版は無料です。APIは成功呼び出しごとに前払いKIT残高から$0.002です。無効入力は課金されません。