【umask】Linuxでファイル作成時のパーミッション指定するコマンド

Linuxでファイル・ディレクトリを新規作成をする時のデフォルトのパーミッションを設定するためのコマンドを紹介します。

【umask】ファイル・ディレクトリ作成時のパーミッションを指定

ファイル・ディレクトリを作成するときにデフォルトで適用されるパーミッション(モード)は、「umask」コマンドで設定・確認することができます。

パーミッションの設定確認。

$ umask
  0022

パーミッションを新しく設定。

$ umask 0022

「umask」コマンドのパーミッション

このパーミッションの指定は「chmod」コマンド同様に8進数を利用します。「chmod」コマンドと異なるのは、アクセスを禁止したいビットを「1」として指定するという点です。

例えば,その他のユーザーのアクセスをすべて禁止したい場合,禁止するビットは「000000111」となり、umaskには「007」を指定します。

より分かりやすく例で言うと、ファイルは「666」から、ディレクトリは「777」から、それぞれumaskの値を引いた数値がアクセス権となります。

「umask」コマンドを使った具体例

umask値からパーミッションを計算する例です。「umask」コマンドで確認した値が、「0022」だった場合はファイル・ディレクトリはそれぞれ以下のように計算できます。

▼ファイル:
0666 - 0022 = 0644

▼ディレクトリ:
0777 - 0022 = 0755

次に「umask」コマンドで、所有者だけがファイルにアクセスできるようにデフォルトのパーミッションを指定する場合です。「chmod」コマンドでは「700」としますが、「umask」コマンドでは、「0777 - 0700 = 0077」と計算します。

$ umask 077 

「umask」コマンドで設定できるのは、新規ファイル・ディレクトリの作成時のパーミッションだけです。そのため、既存ファイル・ディレクトリのパーミッションを変更するには「chmod」コマンドを使います。