Linuxのumaskとは?基本から設定方法まで徹底解説!

Linuxのumaskとは?基本から設定方法まで徹底解説!

当ページのリンクには広告が含まれています。

記事の文字数:1962

Linuxでファイルやディレクトリを作成したときに自動的に設定されるパーミッション、その仕組みを決定するのが「umask」です。本記事では、umaskの基本的な構造や計算方法から、実践的な設定方法、用途別の最適な値の選び方、トラブル時の対処法までを丁寧に解説します。


スポンサーリンク

LinuxやUNIX系のオペレーティングシステムにおいて、ファイルやディレクトリを新規作成する際にデフォルトで設定されるパーミッション(アクセス権)を制御する仕組みが「umask(ユーザーマスク)」です。セキュリティの観点からも重要であり、システムの振る舞いやファイル共有の利便性に大きく影響します。

本記事では、umaskの基本的な仕組みから実用的な使い方、トラブル発生時の対処法までを網羅的に解説します。

umaskとは何か?

umaskとは「User MASK」の略で、新しくファイルやディレクトリを作成する際に適用される“デフォルトのパーミッション”を制限するためのマスク値です。最大のパーミッション値(通常、ファイルは666、ディレクトリは777)からumask値を引くことで、最終的なアクセス権が決まります。

このマスク値はセキュリティ確保の自動化に大きく寄与しており、特定のユーザーやグループに対するアクセス制限を容易に設定できます。

基本構文と現在のumaskの確認方法

umaskはシェルの組み込みコマンドで、構文は以下の通りです。

Terminal window
umask [値]

値を指定せずに実行すると、現在のumask値が表示されます。

Terminal window
$ umask
0022

この例では、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 = 644rw-r--r--
  • ディレクトリ → 777 - 022 = 755rwxr-xr-x

※ 実際にはビット単位で論理積をとる処理が行われますが、概念としては上記のように捉えると分かりやすいでしょう。

umaskの設定方法

一時的なumaskの設定

一時的にumaskを変更する場合は、セッション内で以下のように設定します。

Terminal window
umask 0077

この設定では、作成されたファイルやディレクトリは自分以外のユーザーには一切アクセスできません(ファイル:600、ディレクトリ:700)。

特に機密情報を扱う場面では、このような設定が推奨されます。

永続的なumaskの設定

セッションを超えてumask設定を持続させたい場合は、初期化ファイルに記述します。

個人ユーザー向けの設定場所

  • ~/.bashrc
  • ~/.profile
  • ~/.zshrc(zsh使用時)

システム全体に適用する場合

  • /etc/profile
  • /etc/bash.bashrc

記述例

~/.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本ノック?基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

新品価格
¥2,587から
(2025/4/22 20:54時点)

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

新品価格
¥2,475から
(2025/4/22 21:13時点)


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