このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】パーミッションのマスク値を指定:umaskコマンド

umaskコマンドの概要
「umask
」コマンドは、新しいファイルやディレクトリが作成される際のデフォルトのアクセス権を制御するためのコマンドです。「umask
」値を設定することで、初期アクセス権から特定のビットを引いた値がデフォルトのアクセス権として設定されます。

デフォルトのアクセス権
アクセス権の種類 | デフォルトの値 | 説明 |
---|---|---|
ファイル | 0666 | ユーザー、グループ、その他のすべてに読み取り(r)と書き込み(w)の権限が与えられます。 |
ディレクトリ | 0777 | ユーザー、グループ、その他のすべてに読み取り(r)、書き込み(w)、実行(x)の権限が与えられます。 |
現在設定されているumask値を確認するには
現在の umask
値を確認するには、「umask
」コマンドをオプションなしで実行します。
これにより、現在の umask
値が表示されます。例えば、「0002
」と表示された場合、それが現在のumask
値です。
user01@ubuntu-vm:~$ umask
0002
コマンドの使用例と解説
1.umask値を設定する前のファイルとディレクトリのアクセス権の確認
まず、現在の umask
値を確認し、ファイルとディレクトリのデフォルトのアクセス権を確認します。
・以下のコマンドを実行します。
user01@ubuntu-vm:~$ umask
0002
user01@ubuntu-vm:~$ touch testfile
user01@ubuntu-vm:~$ mkdir testdir
user01@ubuntu-vm:~$ ls -l
合計 40
(省略)
drwxrwxr-x 2 user01 user01 4096 6月 11 00:59 testdir
-rw-rw-r-- 1 user01 user01 0 6月 11 00:59 testfile
(省略)
デフォルトの umask
値は「0002
」です。ファイルのデフォルトのアクセス権は「0664
(rw-rw-r--)」、ディレクトリのデフォルトのアクセス権は「0775
」 (rwxrwxr-x)になっています。
2.umask値を設定した後のファイルとディレクトリのアクセス権の確認
次に、umask
値を「0027
」に設定し、新しいファイルとディレクトリのアクセス権を確認します。
・以下のコマンドを実行します。
user01@ubuntu-vm:~$ umask 0027
user01@ubuntu-vm:~$ touch newfile
user01@ubuntu-vm:~$ mkdir newdir
user01@ubuntu-vm:~$ ls -l
合計 44
drwxr-x--- 2 user01 user01 4096 6月 11 01:16 newdir
-rw-r----- 1 user01 user01 0 6月 11 01:15 newfile
(省略)
ここでは、umask
値を「0027
」に設定することで、ファイルのデフォルトのアクセス権が「0640
」、ディレクトリのデフォルトのアクセス権が「0750
」に変更されています。なお、引き算するとマイナスの値になってしまう場合は0とみなされます。
3.umask値適用前後
下表は、umask値を設定する前後のファイルとディレクトリのデフォルトのアクセス権の違いを示したものです。
項目 | ファイル | ディレクトリ |
---|---|---|
umask値を設定する前 | ||
初期アクセス権 | 0666 (rw-rw-rw-) | 0777 (rwxrwxrwx) |
現在のumask値 (0002) | 0664 (rw-rw-r--) | 0775 (rwxrwxr-x) |
umask値を設定した後 (0027) | ||
初期アクセス権 | 0666 (rw-rw-rw-) | 0777 (rwxrwxrwx) |
新しいumask値 (0027) | 0640 (rw-r-----) | 0750 (rwxr-x---) |
4.ファイルとディレクトリの削除
この演習で作成したファイルとディレクトリを削除します。
・以下のコマンドを実行します。
user01@ubuntu-vm:~$ rm -r *file *dir
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
このようにして、umask
コマンドを使ってデフォルトのアクセス権を変更し、新しいファイルやディレクトリが作成されたときのアクセス権を制御することができます。umask
値の設定は、シェルセッション内でのみ有効です。システム全体に適用するには、シェルの初期化ファイル(例:「~/.bashrc
」や「~/.profile
」)に追加する必要があります。