¿Cómo utilizar permisos de solo lectura para evitar la corrupción en un sistema de archivos grabable?

¿Cómo utilizar permisos de solo lectura para evitar la corrupción en un sistema de archivos grabable?

Estoy desarrollando un sistema operativo Buildroot integrado para Raspberry Pi. Este sistema se apagará simplemente quitando la energía (no habrá temporizador de apagado), por lo tanto, debe poder apagarse sin dañar la tarjeta SD.

Actualmente, el sistema utiliza squashfs de solo lectura para su sistema de archivos raíz, y esto funciona bien. Sin embargo, carece de flexibilidad porque, obviamente, no se puede escribir en la partición. La única forma de instalar software nuevo, por ejemplo, es reconstruir todo el sistema operativo en Buildroot. Entonces me gustaría cambiar esto para que el sistema sea de solo lectura.casi todo el tiempopero se puede escribir en determinadas situaciones seleccionadas.

¿Cuál es la mejor manera de utilizar los permisos de usuario para evitar que se escriba en la tarjeta SD?excepto en ciertas circunstancias controladas? Estoy pensando que simplemente haré una revisión chmod -R u-w /en todo el sistema de archivos, evitando que el usuario escriba algo en cualquier lugar. Luego, para poder escribir algo, el usuario debe autenticarse con sudo.

¿Es éste un enfoque sólido a adoptar?

Un problema que puedo prever es que los procesos ejecutados por el sistema operativo en el arranque se ejecutarán como root y, por lo tanto, tendrán permisos de escritura. Necesitaría encontrar una manera de impedir que el sistema operativo escriba algo en el FS raíz a menos que el usuario lo ordene explícitamente.

Podría ajustar los scripts de inicio de los sistemas para que se ejecuten como un usuario sin privilegios. ¿Alguien ha hecho esto antes? ¿Es posible iniciar procesos del sistema como usuario que no sea root?

información relacionada