ファイル
0644 · rw-r--r--
実際に消えた権限: 0022 · ----w--w-
ビット計算を見る
- 要求ビット
- 0666 · 110 110 110
- マスク:消すビット
- 0022 · 000 010 010
- 許可ビット(~mask & 0777)
- 0755 · 111 101 101
- 結果ビット
- 0644 · 110 100 100
要求があり、マスクされていないビットだけが残ります。
0666 & (~0022 & 0777) = 0644
Linux & Shell
マスクと作成プログラムの要求権限を入力し、ファイルとディレクトリの結果をビット単位で確認します。
0644 · rw-r--r--
実際に消えた権限: 0022 · ----w--w-
要求があり、マスクされていないビットだけが残ります。
0666 & (~0022 & 0777) = 0644
0755 · rwxr-xr-x
実際に消えた権限: 0022 · ----w--w-
要求があり、マスクされていないビットだけが残ります。
0777 & (~0022 & 0777) = 0755
ブラウザー内で計算し、入力は送信・保存しません。
記号は許可ビットを表します。u=rwx,g=rx,o=rxは022と同じです。3区分すべて指定してください。
入力された要求だけを計算します。デフォルトACLや作成後の変更は再現しません。
権限を計算しました。
umask計算は、同じシェルで作ったファイルとディレクトリの権限が違う理由を確かめるときに役立ちます。初期値の0666と0777は、一般的な作成要求を表しています。
実際の要求値が分かる場合は入力を変更してください。マスクは既存のビットを落とすだけで、要求されていない実行権限を付け足すことはありません。
umask計算で111を試すと、ファイルの要求666はそのまま残り、ディレクトリの要求777は666になります。最初からない実行ビットは削除できないため、単純な引き算では説明できません。
umask計算では、マスクが通す権限とプログラムの要求を別々に示します。ファイル要求を777にすると実行ビットを残せますが、666のままでは追加されません。
例の一覧から111を選び、読み込みのプレビューを開きます。変更する項目数を確認して適用すると、ファイルは0666のままです。取り消しで入力と結果を一緒に戻せます。
マスク欄にはu=rwx,g=rx,o=rxのような完全なumask -S形式を入力します。要求欄にはrw-rw-rw-など9文字の権限を使います。同じ意味の表記ではありません。
自動計算を切ると、複数の値をまとめて編集できます。変更中は出力できません。計算ボタンかCtrl/Cmd+Enterで更新し、ビット計算を開いてから結果を利用してください。
デフォルトパーミッションの確認ではファイル0666、ディレクトリ0777から始めます。実行ファイルを作るプログラムなら0777、非公開ファイルなら0600など、実際の要求を指定できます。
数字のマスクは消すビットを示します。u=、g=、o=で指定するシンボルモードは通過できるビットです。出力では4桁の8進数と所有者・グループ・その他のrwxを併記します。
要求、マスク、その下位9ビットの反転、論理積の結果を順に確認できます。実際に消えたビットは別表示なので、要求に含まれないビットを消したと誤解せずに済みます。
026と027の差は、その他のユーザーの実行ビットだけです。要求0666にはそのビットがないため、どちらも0640になります。8進数の引き算ではなく、反転マスクとのビットごとの論理積で考えます。
一般的なファイル作成コマンドは実行ビットを含まない0666を要求します。umaskは権限を追加できません。ただし実行ファイルを作るプログラムは0777を要求でき、その場合はマスクに応じて実行権限が残ります。
このツールでは0022と022は同じ値です。先頭の0は別のユーザー区分ではありません。4桁目が0でない1022などは特殊ビットを含むため拒否します。
マスクが許可する権限です。u=rwx,g=rx,o=rxは許可値0755、マスク0022に相当します。0666を要求したファイルに実行権限が付くという意味ではありません。
Linuxでは親のデフォルトACLを継承し、要求値にない権限をさらに落とします。その場合は通常のumask経路を使いません。このツールはACLを入力しないため、その継承結果は求められません。
結果について気になる点がありますか?