Chapter 41. Setting read-only permissions for the root file system
Sometimes, you need to mount the root file system (
/) with read-only permissions. Example use cases include enhancing security or ensuring data integrity after an unexpected system power-off.
41.1. Files and directories that always retain write permissions
For the system to function properly, some files and directories need to retain write permissions. When the root file system is mounted in read-only mode, these files are mounted in RAM using the
tmpfs temporary file system.
The default set of such files and directories is read from the
/etc/rwtab file, which contains:
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>
Entries in the
/etc/rwtab file follow this format:
In this syntax:
- Replace copy-method with one of the keywords specifying how the file or directory is copied to tmpfs.
- Replace path with the path to the file or directory.
/etc/rwtab file recognizes the following ways in which a file or directory can be copied to
An empty path is copied to
tmpfs. For example:
A directory tree is copied to
tmpfs, empty. For example:
A file or a directory tree is copied to
tmpfsintact. For example:
The same format applies when adding custom paths to
41.2. Configuring the root file system to mount with read-only permissions on boot
With this procedure, the root file system is mounted read-only on all following boots.
/etc/sysconfig/readonly-rootfile, set the
# Set to 'yes' to mount the file systems as read-only. READONLY=yes
rooption in the root entry (
/) in the
/dev/mapper/luks-c376919e... / xfs x-systemd.device-timeout=0,ro 1 1
rooption to the
GRUB_CMDLINE_LINUXdirective in the
/etc/default/grubfile and ensure that the directive does not contain
GRUB_CMDLINE_LINUX="rhgb quiet... ro"
Recreate the GRUB2 configuration file:
# grub2-mkconfig -o /boot/grub2/grub.cfg
If you need to add files and directories to be mounted with write permissions in the
tmpfsfile system, create a text file in the
/etc/rwtab.d/directory and put the configuration there.
For example, to mount the
/etc/example/filefile with write permissions, add this line to the
Changes made to files and directories in
tmpfsdo not persist across boots.
- Reboot the system to apply the changes.
If you mount the root file system with read-only permissions by mistake, you can remount it with read-and-write permissions again using the following command:
# mount -o remount,rw /