概要
新規作成物の初期権限を決めるマスク値を表示または設定します。chmodが後から変える道具であるのに対し、umaskは最初から作られる権限を制御します。
基本構文
umask [-p] [-S] [モード]詳細解説
umaskは、新しく作成されるファイルやディレクトリの初期権限から、一定のビットを差し引くための仕組みです。シェルの現在の実行環境に作用するため、通常はシェル組み込みとして提供されます。
一般に通常ファイルの基準値は666、ディレクトリの基準値は777と考え、その値からumaskで指定したビットを外して最終的な初期権限が決まります。
実務では、共同作業ディレクトリ、秘密情報の保存先、サービス起動ユーザーの環境などで重要です。
このコマンドを使う場面
ログイン時の既定権限を整える時、サービス実行前に安全な初期権限を決めたい時、共有作業のしやすさと秘匿性のバランスを取りたい時に使います。
まず安全に試す方法
1. umask 022
2. touch file1 && mkdir dir1
3. ls -ld file1 dir1
4. umask 077
5. touch file2 && mkdir dir2
6. ls -ld file2 dir2
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
二つの値でファイルとディレクトリを作り、初期権限の差を確認します。
-
umask -Sの出力を読めるようにします。
資格試験との関連
-
LinuC レベル1
範囲: 1.02.1 ファイルの所有者とパーミッション根拠: officialLinuCレベル1では、所有者、グループ、パーミッション、生成時マスクの理解が重要です。
-
LPIC-1
範囲: 104.5 Manage file permissions and ownership根拠: officialLPIC-1では、所有者、グループ、モード、生成時マスクの理解が重要です。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、umaskはLinux運用の基礎体力を支える重要なコマンドです。
実行結果サンプル
-
umask 022 touch file1 mkdir dir1 ls -ld file1 dir1-rw-r--r-- ... file1 drwxr-xr-x... dir1 -
umask 077 touch file2 mkdir dir2 ls -ld file2 dir2-rw------- ... file2 drwx------ ... dir2
戻り値コード
- 0 正常終了。表示または設定に成功しました。
- >0 不正なモード指定などで設定できませんでした。
使用例
umaskumask 022umask 077umask -S
よくあるエラー
-
umask 755のつもりで設定した 原因: umaskは与える値ではなく外す値です。対処: 基準値から差し引く仕組みを理解し、022や077の意味を整理します。
-
親シェルへ反映されない 原因: 子シェルや別プロセスで実行しました。対処: 現在のシェルで実行するか、初期化ファイルへ設定します。
導入・互換性情報
umaskはPOSIXで定義されるシェル組み込みです。外部コマンドではないため、別プロセスで実行しても親シェルの設定は変わりません。
注意点 / セキュリティリスク
危険度は低いものの、影響は見えにくく長く続きます。シェル初期化ファイルへ誤ったumaskを書くと、新規作成物すべての初期権限が意図せず変わります。
FAQ
-
Q. 022と077はどう使い分けますか。 A. 022は一般的な共有前提、077は秘匿性を高めたい用途でよく使われます。
-
Q. 既存ファイルに影響しますか。 A. いいえ。新規作成物の初期権限にだけ影響します。
関連用語
参照リンク
- カテゴリー: Permissions And Ownership
- シェル依存: Posix Sh
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎