¿Forma rápida de restaurar o recargar / etc / fstab configuración?


11

Estoy trabajando con un complejo /etc/fstaben un servidor basado en RHEL 6.x. El sistema tiene una variedad de opciones de montaje en uso en ocho particiones, incluidos varios montajes de enlace. Estoy probando opciones y su efecto en la imagen en la que estoy trabajando.

por ejemplo, opciones como nodev, nosuid, noexec, nobarriery varios parámetros del sistema de ficheros XFS están en su lugar.

Si bien sé que es posible volver a montar con opciones específicas, ¿hay una forma rápida de revertir todos los montajes a las configuraciones persistentes codificadas /etc/fstab?

Por ejemplo, sysctl -pcarga los /etc/sysctl.confvalores y los aplica. ¿Hay un mountequivalente?


Editar:

Un ejemplo de configuración:

#
# /etc/fstab
#
UUID=e6ca80cd    /                       ext4    noatime,nobarrier        1 1
UUID=a327d315    /boot                   ext4    defaults                 1 2
UUID=333ada18    /home                   ext4    noatime,nobarrier,nodev  1 2
UUID=7835718b    /tmp                    ext4    nodev,nosuid,noexec      1 2
UUID=4dd2e9d4    /usr                    ext4    defaults                 1 2
UUID=c274f65f    /var                    ext4    noatime,nobarrier        1 2
UUID=5b5941e0    /var/log                ext4    defaults                 1 2
UUID=3645951a    /var/log/audit          ext4    defaults                 1 2
UUID=3213123c    /vol1                   xfs     noatime,logbufs=8,nobarrier 1 2
UUID=1ee1c070    swap                    swap    defaults                 0 0
# Bind mount for /tmp
/tmp             /var/tmp                none    bind                     0 0
tmpfs            /dev/shm                tmpfs   nodev,nosuid,noexec      0 0
devpts           /dev/pts                devpts  gid=5,mode=620           0 0
sysfs            /sys                    sysfs   defaults                 0 0
proc             /proc                   proc    defaults                 0 0

Por supuesto, un desarrollador solicita permisos de ejecución/tmp para instalar una aplicación ...

Estoy descubriendo que la remountopción no funciona en este sistema sin especificar el dispositivo y (re) punto de montaje. Este es un servidor con seguridad reforzada, por lo que los problemas que estoy viendo pueden estar relacionados con SElinux o como resultado de los montajes de enlace, o tal vez incluso la presencia de opciones negadas (noexec versus exec) ...


¿El desarrollador intenta ejecutar el script directamente desde un shell o web (a través de httpd)? ¿Qué mensaje de error ves cuando intentas ejecutar un script?
Daniel t.

Piense en ello como un típico instalador de aplicaciones de terceros que descarga un ejecutable binario o de shell /tmp. Oracle, por ejemplo.
ewwhite

Esto podría ser un problema de SELINUX, puede intentar ausearch -m AVC,USER_AVC -sv norevisar el resultado en busca de tmperrores.
Daniel t.

Respuestas:


9

Escribe esto en bash:

egrep -v '^#' /etc/fstab | while read dev dir type opts dump pass ; do
    echo "mount -o remount,${opts} ${dir}";
done

En mi sistema, esto produce resultados como este:

mount -o remount,nodev,noexec,nosuid /proc
mount -o remount,relatime,errors=remount-ro /
mount -o remount,defaults /misc

Pruébalo en tu sistema. Si le gusta la salida que produce, úsela o simplemente elimine las echocomillas y las comillas dobles del comando anterior.


Probablemente también necesites agregar $devallí ...
freiheit

4

Simplemente usaría un script para hacerlo para los sistemas de archivos relevantes

for fs in /home /var /whatever
do
    mount -o remount "$fs"
done

Es posible que también necesite poner una -fsi hay una o más fs ocupadas, p. Ej.

mount -f -o remount "$fs"

3

Desde la página del mountmanual :

La funcionalidad de montaje sigue la forma estándar en que funciona el comando mount con las opciones de fstab. Significa que el comando mount no lee fstab (o mtab) solo cuando un dispositivo y un directorio están completamente especificados.

  mount -o remount,rw /dev/foo /dir

Después de esta llamada, se reemplazan todas las opciones de montaje antiguas y se ignoran las cosas arbitrarias de fstab, excepto la opción loop = que el comando mount genera y mantiene internamente.

  mount -o remount,rw  /dir

Entonces mount -o remount /mountpointdebería restaurar las opciones en /etc/fstab:

mgorven@mamma:~% grep boot /etc/fstab
UUID=823c73dc-8f64-4f76-a120-968106ffdf5a /boot           ext4    relatime        0       2
mgorven@mamma:~% sudo mount -o remount,ro /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (ro,relatime)
mgorven@mamma:~% sudo mount -o remount /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (rw,relatime)

Esto no funcionó en mi caso, pero puede ser el resultado de otros factores en el sistema. Ver fstab actualizado arriba.
ewwhite

@ewwhite No puedo reproducir el problema usando sus opciones de fstab, así que hay algo más.
mgorven

0

¿Está cambiando la dinámica de las banderas de montaje sin pasar por / etc / fstab y reiniciar?

¿No puedes hacer lo siguiente (por ejemplo):

 mount -o remount /usr

restaurar las opciones originales desde / etc / fstab? Puede verificar las opciones montadas utilizando el comando de montaje sin argumentos.


0

Tendrá dificultades para volver a montar sistemas de archivos como / usr y / var una vez que el sistema esté en funcionamiento. El montaje diferido, por ejemplo, probablemente solo devolverá un éxito, pero en realidad nunca tendrá la oportunidad de realizar el montaje solicitado, ya que habrá identificadores de archivos abiertos durante toda la vida útil del sistema.

Si esta es una imagen de desarrollo, como parece, entonces recomiendo simplemente arrancar el sistema para cada prueba. Es tedioso, pero al menos sabes con certeza que el sistema está funcionando de la forma en que estaría en producción, por lo que tu prueba es confiable.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.