デフォルトのパーミッション「umask値」

umask値

はじめに

umask は、LinuxやUNIX環境において、新しいファイルやディレクトリを作成する際にデフォルトで設定されるパーミッション(アクセス権限)を制御するコマンドです。通常、新しく作成されたファイルやディレクトリには、デフォルトで全てのユーザーに一定のアクセス権限が与えられますが、umask の設定によってこれらのパーミッションを制限できます。本記事では、umask の基本的な使い方や設定方法、そしてその仕組みについて詳しく解説します。

umask とは?

umask(ユーザーマスク)は、新しく作成されるファイルやディレクトリに適用されるデフォルトのパーミッションを制限するための数値設定です。ユーザー、グループ、その他のユーザーが持つ権限を制御し、誤って過度な権限を与えることを防ぎます。

ファイルとディレクトリのデフォルトパーミッション

ファイルやディレクトリのデフォルトのパーミッションは以下の通りです。

  • ファイル: 666(rw-rw-rw-)
  • ディレクトリ: 777(rwxrwxrwx)

このパーミッションから umask の値を引くことで、実際に適用されるパーミッションが決まります。

umask の仕組み

umask の値は、3桁または4桁の数値で表され、ファイルやディレクトリに許可しない権限を指定します。この数値は、ユーザー、グループ、その他のユーザーに対して、それぞれの権限を制限します。umask の値が高いほど、権限が制限されます。

例: umask0022 の場合、以下のようにパーミッションが設定されます。

  • デフォルトのファイルパーミッション: 666 - 022 = 644(rw-r--r--)
  • デフォルトのディレクトリパーミッション: 777 - 022 = 755(rwxr-xr-x)

この場合、グループとその他のユーザーに書き込み権限が与えられません。

基本的な使い方

現在の umask の値を確認するには、次のコマンドを使用します。

umask

例として、現在の umask の値が 0022 と表示された場合、新しいファイルやディレクトリは以下のパーミッションで作成されます。

  • ファイル: 644
  • ディレクトリ: 755

umask の設定

新しい umask の値を設定するには、次の形式でコマンドを実行します。

$ umask <値>

例えば、umask の値を 0002 に設定するには次のようにします。

$ umask 0002

この場合、グループに対して書き込み権限が与えられるため、新しく作成されるファイルのパーミッションは 664、ディレクトリのパーミッションは 775 となります。

umask の計算方法

umask の値は、アクセス権限を制限するビットを表します。それぞれの桁は、以下の権限に対応します。

  • ユーザー(所有者): 1桁目
  • グループ: 2桁目
  • その他(全てのユーザー): 3桁目

各桁は、次のような権限を表すビットを持ちます。

  • 4 = 読み取り(read)
  • 2 = 書き込み(write)
  • 1 = 実行(execute)

例えば、0022 という値は、グループとその他のユーザーに対して書き込み権限が制限されていることを意味します。

umask の用途

1. セキュリティの強化

umask は、システムのセキュリティを強化するために使用されます。デフォルトのパーミッションでファイルやディレクトリを作成すると、意図しないユーザーに過剰な権限を与えてしまう可能性があります。umask を設定することで、特定の権限を制限し、アクセス制御を強化できます。

2. システムの一貫性

異なるユーザーがファイルやディレクトリを作成する際、統一されたパーミッションを適用することで、システムの一貫性を保ち、操作ミスによる権限の誤設定を防ぐことができます。

3. チーム開発でのパーミッション管理

複数のユーザーが同じプロジェクトに取り組む場合、umask を適切に設定することで、ユーザー間で一貫した権限を適用し、ファイルの誤った共有や誤削除を防止できます。

まとめ

umask コマンドは、ファイルやディレクトリに対するデフォルトのパーミッションを制御する強力なツールです。セキュリティやシステムの一貫性を保つために、適切な umask の設定が重要です。開発環境やチームでのファイル管理を行う際には、umask の設定を見直すことで、無駄なリスクを防ぐことができます。