umask – 新規ファイルやディレクトリ作成時のデフォルト権限を制御するコマンド

パーミッション

umask コマンドは、新しく作成するファイルやディレクトリに適用されるデフォルトのパーミッションを制御する コマンドです。
ファイルやディレクトリの「不要な権限をマスクする(取り除く)」役割を持ち、セキュリティやアクセス制御において重要です。

構文(Syntax)

umask [オプション] [マスク値]

主なオプション一覧

オプション説明使用例
(なし)現在の umask 値を表示umask
-Sシンボリック形式で表示umask -S
VALUEumask 値を設定(8進数またはシンボリックモード)umask 022 / umask u=rwx,g=rx,o=rx

umask の仕組み

  • Linux では通常、ファイル作成時の最大パーミッションは以下:
    • ファイル: 666 (rw-rw-rw-)
    • ディレクトリ: 777 (rwxrwxrwx)
  • umask の値を 引き算(マスク) することで、実際のパーミッションが決定します。

例:

最大 666 (ファイル) - umask 022 = 644 (rw-r--r--)
最大 777 (ディレクトリ) - umask 022 = 755 (rwxr-xr-x)

実行例

現在の umask を確認

umask

出力例:

0022

シンボリック形式で確認

umask -S

出力例:

u=rwx,g=rx,o=rx

umask を一時的に変更

umask 077
touch secret.txt
ls -l secret.txt

出力例:

-rw------- 1 user user 0 Aug 21 12:00 secret.txt

(所有者以外アクセス不可)

ディレクトリ作成時の影響

umask 002
mkdir shared
ls -ld shared

出力例:

drwxrwxr-x 2 user user 4096 Aug 21 12:10 shared

(グループも書き込み可能)

シンボリック指定で設定

umask u=rwx,g=rx,o=
mkdir private
ls -ld private

出力例:

drwxr-x--- 2 user user 4096 Aug 21 12:15 private

エラー例(不正な値を指定)

umask 999

出力例:

bash: umask: 999: invalid symbolic mode operator

関連コマンド

  • chmod : 既存ファイル・ディレクトリの権限を変更
  • chown : 所有者を変更
  • install : コピー時に権限を直接指定可能

備考

  • umask の設定はシェルのセッション単位で有効です。ログイン時の初期設定は /etc/profile~/.bashrc などで指定されることが多いです。
  • サーバー環境では、セキュリティのために 022 または 077 が一般的に設定されます。
  • ファイルとディレクトリで「最大パーミッション」が異なる点に注意が必要です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント