umask=22がパーミッション755になる理由

umask=22がパーミッション755になる理由は、実は「計算式」が存在します。この計算により、umaskの値からファイルやディレクトリのパーミッションが導かれます。

umaskの基本的な仕組み

まず、umaskはファイルやディレクトリの「パーミッションをマスク(除外)」する役割を持ち、デフォルトのパーミッションからumaskのビットで指定された部分を取り除いたものが最終的なパーミッションになります。

デフォルトのパーミッション

  • ファイルのデフォルトパーミッションは666です(読み書き可能)。
  • ディレクトリのデフォルトパーミッションは777です(読み書き実行可能)。

umaskの計算方法

umaskの値は、「削除する」パーミッションを表しており、666または777からumaskの値を引いた結果が、最終的なパーミッションになります。

実際の計算例

ディレクトリのパーミッションの計算

  1. ディレクトリのデフォルトのパーミッションは777です。
  2. ここからumaskの22を引きます。計算式は次のようになります:
   777 - 022 = 755
  • 7 - 0 = 7(所有者のパーミッションはrwx
  • 7 - 2 = 5(グループのパーミッションはr-x
  • 7 - 2 = 5(その他のパーミッションはr-x
  1. したがって、ディレクトリのパーミッションは755rwxr-xr-x)になります。

ファイルのパーミッションの計算

  1. ファイルのデフォルトのパーミッションは666です。
  2. ここからumaskの22を引きます。計算式は次のようになります:
   666 - 022 = 644
  • 6 - 0 = 6(所有者のパーミッションはrw-
  • 6 - 2 = 4(グループのパーミッションはr--
  • 6 - 2 = 4(その他のパーミッションはr--
  1. したがって、ファイルのパーミッションは644rw-r--r--)になります。

まとめ

umaskの計算は、「デフォルトパーミッション」から「umaskで指定したビット」を引くことで決定されます。umaskの各桁が0でなければ、それに応じたパーミッションがマスクされ、最終的なパーミッションが決まります。