
https://github.com/systemd/systemd/issues/9914#issuecomment-416387637
$ uname -r
4.17.18-200.fc28.x86_64
$ unshare -U -r -m
# mkdir TMP
# mount -t tmpfs tmpfs TMP/
# mount -o remount,ro TMP/
mount: ./TMP: permission denied.
# grep TMP /proc/self/mountinfo
834 831 0:74 / /home/alan/TMP rw,relatime - tmpfs tmpfs rw,seclabel,uid=1001,gid=1001
# strace -f mount -o remount TMP/
...
mount("tmpfs", "/home/alan/TMP", 0x557c3cec9600, MS_REMOUNT|MS_RELATIME, "seclabel,uid=1001,gid=1001") = -1 EPERM (Operation not permitted)
...
El remontaje de enlaces funciona bien.
# strace -f mount -o remount,bind,ro TMP/
mount("tmpfs", "/home/alan/TMP", 0x5615b7ebc130, MS_RDONLY|MS_REMOUNT|MS_BIND|MS_RELATIME, "seclabel,uid=1001,gid=1001") = 0
Respuesta1
No se implementó. ¡Pero está en la próxima versión!
v4.18 incluye la siguiente confirmación. Esto no proporciona ninguna razón más específica por la que no se admitía anteriormente.
https://github.com/torvalds/linux/commit/bc6155d13260
fs: permitir que el propietario del superbloque acceda a do_remount_sb()
Los remontajes a nivel de superbloque están actualmente restringidos a CAP_SYS_ADMIN global, al igual que la ruta para cambiar el montaje raíz a solo lectura al desmontar. Afloje ambas comprobaciones de permisos para permitir también CAP_SYS_ADMIN en cualquier espacio de nombres que tenga privilegios para los usuarios que montaron originalmente el sistema de archivos.