カテゴリ: Linuxコマンド集 更新日: 2025/12/26

mkdirコマンドの-Zオプションを完全ガイド!SELinuxのセキュリティコンテキストを指定する方法

mkdir -Zオプション|SELinuxのセキュリティコンテキストを指定する方法
mkdir -Zオプション|SELinuxのセキュリティコンテキストを指定する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxでフォルダを作るときにmkdirを使うのは知っているんですが、-Zオプションって何に使うんですか?」

先生

「良い質問ですね。-Zオプションは、SELinux(エスイーリナックス)というセキュリティ機能に関係していて、新しく作るディレクトリに特定のセキュリティコンテキストを割り当てるときに使うんですよ。」

生徒

「セキュリティコンテキストって何ですか?初心者にはちょっと難しいです…」

先生

「大丈夫です。セキュリティコンテキストというのは、ファイルやフォルダに『このファイルは誰がアクセスできるか、どんな操作が許されるか』というラベルを付ける仕組みのことです。家のドアに『この部屋は管理者しか入れません』と書いた張り紙をするイメージに近いですね。」

生徒

「なるほど!じゃあ、mkdir -Zを使うと、その張り紙を付けながらフォルダを作れるってことですね?」

先生

「その通りです!では実際の使い方を見ていきましょう。」

1. mkdirコマンドと-Zオプションとは?

1. mkdirコマンドと-Zオプションとは?
1. mkdirコマンドと-Zオプションとは?

mkdirは「make directory」の略で、Linuxで新しいディレクトリ(フォルダ)を作成する基本コマンドです。その中で、-ZオプションはSELinuxのセキュリティコンテキスト(Security Context)を指定するために使います。

通常、フォルダを作るとSELinuxが自動的に適切なラベルを付けますが、特定の用途で「このフォルダは特定のサービス専用にする」といったケースでは、自分でセキュリティコンテキストを明示的に指定する必要があります。

2. SELinuxとセキュリティコンテキストの基本

2. SELinuxとセキュリティコンテキストの基本
2. SELinuxとセキュリティコンテキストの基本

SELinux(Security-Enhanced Linux)は、Linuxに組み込まれている強力なセキュリティ機能です。通常のLinuxのパーミッション(読み取り・書き込み・実行の権限)に加えて、さらに細かい制御を行えます。

例えば、ApacheというWebサーバーのプログラムが動くとき、「このフォルダはWebページ用だからApacheだけがアクセスできる」といった制御をセキュリティコンテキストで実現できます。

セキュリティコンテキストは、一般的に「ユーザー:ロール:タイプ:レベル」という形で表現されます。初心者が最初に覚えるべきポイントはタイプ(type)です。これが「どのサービスやプロセスに許可されるか」を決める重要な部分だからです。

3. mkdir -Zの具体的な使い方

3. mkdir -Zの具体的な使い方
3. mkdir -Zの具体的な使い方

それでは、実際にmkdir -Zを使ってフォルダを作成してみましょう。ここでは例として、Apache用の公開ディレクトリを作るケースを考えます。


mkdir -Z httpd_sys_content_t /home/user/public_html

このコマンドでは、/home/user/public_htmlというフォルダを作り、そのフォルダに「httpd_sys_content_t」というタイプのセキュリティコンテキストを設定しています。これによりApacheが安全にそのフォルダを扱えるようになります。

4. セキュリティコンテキストを確認する方法

4. セキュリティコンテキストを確認する方法
4. セキュリティコンテキストを確認する方法

作成したフォルダに正しくセキュリティコンテキストが設定されているか確認するには、ls -Zコマンドを使います。


ls -Z /home/user/public_html
drwxr-xr-x. user user system_u:object_r:httpd_sys_content_t:s0 public_html

ここで「httpd_sys_content_t」と表示されている部分が、指定したセキュリティコンテキストです。もし間違っていれば再度設定し直す必要があります。

5. よくある利用シーン

5. よくある利用シーン
5. よくある利用シーン
  • Webサーバー用フォルダを作成するとき(ApacheやNginx向け)
  • データベースのストレージディレクトリを準備するとき
  • 特定のユーザーやアプリ専用のセキュリティが必要な場合

これらの場面でmkdir -Zを使えば、SELinuxの仕組みと連携して安全なシステム運用ができます。

6. 注意点とトラブルシューティング

6. 注意点とトラブルシューティング
6. 注意点とトラブルシューティング

-Zオプションを使うときに注意すべき点があります。SELinuxが有効になっていない環境では、このオプションを指定しても意味がありません。また、間違ったセキュリティコンテキストを設定すると、アプリケーションがフォルダにアクセスできなくなることがあります。

もしWebサーバーがフォルダを読み込めないといったトラブルが起きた場合は、まずls -Zでセキュリティコンテキストを確認しましょう。必要であれば、chconコマンドで後から修正することも可能です。

関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -hオプションの使い方|ファイル名を表示せずに一致行だけを出力する方法
New2
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New3
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New4
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本