
スポンサーリンク
LinuxやUNIX系のオペレーティングシステムにおいて、ファイルやディレクトリを新規作成する際にデフォルトで設定されるパーミッション(アクセス権)を制御する仕組みが「umask(ユーザーマスク)」です。セキュリティの観点からも重要であり、システムの振る舞いやファイル共有の利便性に大きく影響します。
本記事では、umaskの基本的な仕組みから実用的な使い方、トラブル発生時の対処法までを網羅的に解説します。
umaskとは何か?
umaskとは「User MASK」の略で、新しくファイルやディレクトリを作成する際に適用される“デフォルトのパーミッション”を制限するためのマスク値です。最大のパーミッション値(通常、ファイルは666
、ディレクトリは777
)からumask値を引くことで、最終的なアクセス権が決まります。
このマスク値はセキュリティ確保の自動化に大きく寄与しており、特定のユーザーやグループに対するアクセス制限を容易に設定できます。
基本構文と現在のumaskの確認方法
umaskはシェルの組み込みコマンドで、構文は以下の通りです。
umask [値]
値を指定せずに実行すると、現在のumask値が表示されます。
$ umask0022
この例では、umaskが0022
に設定されており、「グループおよびその他のユーザーには書き込みを許可しない」ことを意味します。
4桁umaskの意味
umaskの値は通常3桁または4桁で表現されます。先頭の1桁は特殊ビット(setuid、setgid、sticky bit)に関する設定で、通常の使用では0
であることが多いため、省略されることもあります。
例:0022
0
:特殊ビットの設定なし0
:所有者(ユーザー)に対する制限なし2
:グループに対して書き込みを制限(-w
)2
:その他に対して書き込みを制限(-w
)
このように、各桁はそれぞれ以下に対応しています。
- 1桁目:特殊ビット(省略可能)
- 2桁目:ユーザー(所有者)
- 3桁目:グループ
- 4桁目:その他
umaskの計算ロジック
以下はumaskがどのように最終的なパーミッションに反映されるかの例です。
- 基準パーミッション(ファイル):
666
- 基準パーミッション(ディレクトリ):
777
- umask:
0022
計算結果
- ファイル →
666 - 022 = 644
→rw-r--r--
- ディレクトリ →
777 - 022 = 755
→rwxr-xr-x
※ 実際にはビット単位で論理積をとる処理が行われますが、概念としては上記のように捉えると分かりやすいでしょう。
umaskの設定方法
一時的なumaskの設定
一時的にumaskを変更する場合は、セッション内で以下のように設定します。
umask 0077
この設定では、作成されたファイルやディレクトリは自分以外のユーザーには一切アクセスできません(ファイル:600
、ディレクトリ:700
)。
特に機密情報を扱う場面では、このような設定が推奨されます。
永続的なumaskの設定
セッションを超えてumask設定を持続させたい場合は、初期化ファイルに記述します。
個人ユーザー向けの設定場所
~/.bashrc
~/.profile
~/.zshrc
(zsh使用時)
システム全体に適用する場合
/etc/profile
/etc/bash.bashrc
記述例
umask 0022
運用スタイルに応じたumask設定の選び方
使用目的やセキュリティ方針に応じて、適切なumask値を選びましょう。
環境 | 推奨umask | 説明 |
---|---|---|
セキュリティ重視 | 0077 | 他ユーザーに一切アクセスさせない |
チーム開発 | 0002 | グループ間で読み書き共有可能 |
一般的な用途 | 0022 | 他ユーザーは読み取りのみ可能 |
よくある問題とその対処法
想定外のパーミッションが設定される
- スクリプト実行時、cronやsystemdなどの環境ではumaskが明示的に指定されていないと、意図しないパーミッションになる可能性があります。
- 対策:スクリプトの冒頭で明示的に
umask
を設定しましょう。
まとめ:umaskを使いこなそう
ファイルやディレクトリのパーミッション管理は、システムのセキュリティやチームの生産性に直結します。umaskを理解し、適切に設定することは、日常的なLinux運用における基本であり、極めて重要です。
よく使われるumask値
umask 0022
umask 0002
umask 0077
自身の用途に最適なumask設定を選び、堅牢で快適なLinux環境を構築していきましょう。
Linuxユーザにお勧めの本
![]() | ゼロからわかる Linuxコマンド200本ノック?基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!
新品価格 |

![]() | エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書
新品価格 |

以上で本記事の解説を終わります。
よいITライフを!