ウェブサイト検索

SELinux コンテキストを保持しながら Linux でファイルとディレクトリをコピーする


セキュリティ強化Linux(SELinux)は、アクセスコントロールセキュリティポリシーをサポートするためのメカニズムを提供する強力なセキュリティモジュールです。SELinux対応システムでファイルやディレクトリを管理する際には、それらのSELinuxコンテキストを保持することが重要であり、そのセキュリティ特性を維持します。この記事では、LinuxシステムでSELinuxコンテキストを保持しながらファイルとディレクトリをコピーする手順を説明します。

このチュートリアルでは、あなたは学びます:

  • SELinuxコンテキストとは何か、そしてそれが重要な理由
  • SELinuxコンテキストを保持しながらファイルをコピーする方法
  • SELinuxコンテキストを保持しながらディレクトリをコピーする方法

SELinuxコンテキストの理解

SELinuxコンテキスト、別名セキュリティコンテキストは、ファイルに関連付けられた一連のセキュリティ属性です。これには、ユーザー、ロール、タイプ、およびレベル(オプション)のフィールドが含まれます。SELinuxが有効なシステムでファイルやディレクトリをコピーするときに、このコンテキストを保持することで、コピーされたアイテムがそのセキュリティ特性を維持し、潜在的なセキュリティ問題を防ぐことができます。

SELinuxコンテキストを保持しながらファイルをコピーする

このセクションでは、SELinuxコンテキストを保持しながら個々のファイルをコピーする手順について説明します。

  1. ファイルのSELinuxコンテキストを確認する: ファイルをコピーする前に、そのSELinuxコンテキストを確認して、セキュリティ属性を理解することが良い習慣です。

    ls -Z /etc/services

    このコマンドは、指定したファイルのSELinuxコンテキストを表示します。出力には、そのファイルに関連するユーザー、ロール、タイプ、およびレベルが表示されます。

  2. SELinuxコンテキストを保持しながらファイルをコピーする: cpコマンドに--preserve=contextオプションを使って、ファイルをコピーし、SELinuxコンテキストを維持してください。

    cp --preserve=context /etc/services /tmp

    このコマンドは、ソースファイルのSELinuxコンテキストが宛先ファイルに保持され、そのセキュリティ特性が維持されることを保証します。

  3. コピーしたファイルのSELinuxコンテキストを確認する: ファイルをコピーした後、宛先ファイルのコンテキストを確認してSELinuxコンテキストが保持されているかを確認します。

    ls -Z /tmp/services

    この出力を元のファイルの文脈と比較して、一致することを確認してください。

SELinuxコンテキストを保持しながらディレクトリをコピーする

このセクションでは、SELinuxコンテキストを保持しながらディレクトリ全体をコピーする手順について説明します。

  1. ディレクトリのSELinuxコンテキストを確認する: ディレクトリをコピーする前に、そのSELinuxコンテキストを確認してセキュリティ属性を理解することが良いプラクティスです。このステップは、ディレクトリ内の個々のファイルに対して行うことができ、使用されているコンテキストの概要を把握できます。

    ls -Zd /etc

    このコマンドは、指定されたディレクトリ内のファイルおよびディレクトリのSELinuxコンテキストを表示します。

  2. SELinuxコンテキストを保持しながらディレクトリをコピーする: ディレクトリをコピーする際は、-r(再帰的)オプションとともに--preserve=contextを使用して、すべてのファイルとサブディレクトリがそのSELinuxコンテキストを維持するようにします。

    cp -r --preserve=context /etc /tmp/

    このコマンドは、指定された宛先に対して、全ての含まれるファイルおよびディレクトリのSELinuxコンテキストを保持しながら、/etcディレクトリ全体を再帰的にコピーします。

  3. コピーしたディレクトリのSELinuxコンテキストを確認する:ディレクトリをコピーした後、いくつかのファイルやサブディレクトリのコンテキストをチェックして、SELinuxコンテキストが保持されているか確認してください。

    ls -Zd /tmp/etc

    元のディレクトリ構造とコンテキストが一致していることを確認してください。

  4. 必要に応じてデフォルトのSELinuxコンテキストを復元する: 何らかの理由でデフォルトのSELinuxコンテキストを復元する必要がある場合は、restoreconコマンドを使用してください。

    restorecon -R /tmp/etc

    このコマンドは、指定されたディレクトリとその内容のSELinuxコンテキストを、システムのポリシーに基づいてデフォルト値にリセットします。

結論

ファイルやディレクトリをコピーする際にSELinuxコンテキストを保持することは、SELinuxによって強制されるセキュリティポリシーを維持するために重要です。このチュートリアルに示された手順に従うことで、コピーされたアイテムがSELinuxコンテキストを保持し、セキュリティ属性を保存し、潜在的な問題を防ぐことができます。SELinuxコンテキストの理解と管理は、セキュリティに配慮した環境で働くLinuxシステム管理者にとって重要なスキルです。

関連記事: