GNU/Linux admin el 30 Jun 2009
Montando /usr como read-only
El Filesystem Hierarchy Standard es una especificación que define una pautas y requerimentos para la construcción del árbol de directorios que constituye un sistema operativo tipo-UNIX. Algunas distribuciones GNU/Linux se adhieren a este estándar y otras no, los BSD tampoco. Algunos de los puntos pueden ser bastante discutibles, pero tiene aspectos interesantes.
Al principio me sorprendió que uno de los consejos fuera que el directorio /usr tendría que estar en una partición separada y montada como sólo lectura. Pero el objetivo es que /usr pueda ser compartido entre distintos servidores por red. A mi personalmente me parece más interesante pensando en aspectos de seguridad: ¿quién es el guapo que mete un rootkit en los ejecutables de un sistema de sólo lectura?
Así que decidí montar en mi sistema el directorio /usr como read-only. Esta es la entrada correspondiente en el fichero /etc/fstab, en mi caso la partición correspondiente a /usr es /dev/sda6.
/dev/sda6 /usr ext4 ro 0 1
Pero esto supone un problema, ¿cómo actualizo el sistema sin permiso de escritura en /usr? Fácil, el sistema puede remontarse (no hace falta desmontar y volver a montar, con el riesgo que esto supondría para la estabilidad), podemos usar mount con el parámetro remount para aplicar cambios en un sistema de ficheros montado. Ejemplos:
# mount /dev/sda6 /usr -o remount,ro # mount /dev/sda6 /usr -o remount,rw
Lo que yo hice para facilitar las cosas fué añadir estas dos entradas de alias en /root/.bashrc
alias usrro='mount /dev/sda6 /usr -o remount,ro && mount | grep sda6' alias usrrw='mount /dev/sda6 /usr -o remount,rw && mount | grep sda6'
Ahora puedo usar los comandos usrrw y usrro antes y después de actualizar el sistema. En estos comandos de alias, la parte que hay a partir de && es puramente informativa, así podemos asegurarnos que los cambios se han aplicado correctamente.
Si se diera el caso de que somos unos paranoicos de la seguridad, no estaría nada mal aplicar el mismo cuento a los directorios /bin y /sbin, aunque hacer particiones expresamente para directorios que ocupan tan poco puede parecer un poco ridículo. Quizás la solución sería que estos dos directorios, donde encontramos los comandos básicos del sistema, no estuviesen montados en una partición sinó en un fichero con la opción loop, aunque hay que tener claro que esto es peligroso, si se corrompiera dicho fichero nos quedaríamos con un sistema inusable.
Se aceptan ideas.
Una de las coas que más me ha gustado siempre de
Personalmente uso kate o kwrite como editor simple, para tomar pequeñas notas, etc. Pero para programar o editar ficheros de configuración del sistema no dudo en usar VIM. No voy a profundizar en el uso de este editor, si no te suena de nada el nombre probablemente este artículo no te interese en absoluto. El hecho es que VIM, o cualquiera de los clones de vi, es un editor muy potente. Al contario de lo que parece a simple vista.