14.10. root ファイルシステムに対する読み取り専用パーミッションの設定

場合によっては、root ファイルシステム (/) を読み取り専用パーミッションでマウントする必要があります。ユースケースの例には、システムの予期せぬ電源切断後に行うセキュリティーの向上またはデータ整合性の保持が含まれます。

14.10.1. 書き込みパーミッションを保持するファイルおよびディレクトリー

システムが正しく機能するためには、一部のファイルやディレクトリーで書き込みパーミッションが必要とされます。root ファイルシステムが読み取り専用モードでマウントされると、このようなファイルは、tmpfs 一時ファイルシステムを使用して RAM にマウントされます。

そのようなファイルとディレクトリーのデフォルトセットは、/etc/rwtab ファイルから読み取り、以下のような内容になっています。

dirs	/var/cache/man
dirs	/var/gdm
<content truncated>

empty	/tmp
empty	/var/cache/foomatic
<content truncated>

files	/etc/adjtime
files	/etc/ntp.conf
<content truncated>

/etc/rwtab ファイルのエントリーは、以下の形式に従います。

copy-method    path

この構文で、以下のことを行います。

  • copy-method を、ファイルまたはディレクトリーを tmpfs にコピーする方法を指定するキーワードの 1 つに置き換えます。
  • path を、ファイルまたはディレクトリーへのパスに置き換えます。

/etc/rwtab ファイルは、ファイルまたはディレクトリーを tmpfs にコピーする方法として以下を認識します。

empty

空のパスが tmpfs にコピーされます。以下に例を示します。

empty /tmp
dirs

ディレクトリーツリーが空の状態で tmpfs にコピーされます。以下に例を示します。

dirs /var/run
files

ファイルやディレクトリーツリーはそのまま tmpfs にコピーされます。以下に例を示します。

files /etc/resolv.conf

カスタムパスを /etc/rwtab.d/ に追加する場合も同じ形式が適用されます。

14.10.2. ブート時に読み取り専用パーミッションでマウントするように root ファイルシステムの設定

この手順を行うと、今後システムが起動するたびに、root ファイルシステムが読み取り専用としてマウントされます。

手順

  1. /etc/sysconfig/readonly-root ファイルで、READONLY オプションを yes に設定します。

    # Set to 'yes' to mount the file systems as read-only.
    READONLY=yes
  2. /etc/fstab ファイルの root エントリー (/) に ro オプションを追加します。

    /dev/mapper/luks-c376919e...  /  xfs  x-systemd.device-timeout=0,ro  1  1
  3. ro オプションを /etc/default/grub ファイルの GRUB_CMDLINE_LINUX ディレクティブに追加し、ディレクティブに rw が含まれていないことを確認します。

    GRUB_CMDLINE_LINUX="rhgb quiet... ro"
  4. GRUB2 設定ファイルを再作成します。

    # grub2-mkconfig -o /boot/grub2/grub.cfg
  5. tmpfs ファイルシステムに書き込みパーミッションでマウントするファイルとディレクトリーを追加する必要がある場合は、/etc/rwtab.d/ ディレクトリーにテキストファイルを作成し、そこに設定を置きます。

    たとえば、/etc/example/file ファイルを書き込みパーミッションでマウントするには、この行を /etc/rwtab.d/example ファイルに追加します。

    files /etc/example/file
    重要

    tmpfs のファイルおよびディレクトリーの変更内容は、再起動後は持続しません。

  6. システムを再起動して変更を適用します。

トラブルシューティング

  • 誤って読み取り専用パーミッションで root ファイルシステムをマウントした場合は、次のコマンドを使用して、読み書きパーミッションで再度マウントできます。

    # mount -o remount,rw /

このページには機械翻訳が使用されている場合があります (詳細はこちら)。