Maneira rápida de restaurar ou recarregar as configurações do / etc / fstab?


11

Estou trabalhando com um complexo /etc/fstabem um servidor baseado no RHEL 6.x. O sistema possui uma variedade de opções de montagem em uso em oito partições, incluindo várias montagens de ligação. Estou testando opções e seus efeitos na imagem em que estou trabalhando.

por exemplo, opções como nodev, nosuid, noexec, nobarriere vários parâmetros XFS filesystem estão no lugar.

Embora eu saiba que é possível remontar com opções específicas, existe uma maneira rápida de reverter todas as montagens para as configurações persistentes codificadas /etc/fstab?

Por exemplo, sysctl -pcarrega os /etc/sysctl.confvalores e os aplica. Existe um mountequivalente?


Editar:

Um exemplo de configuração:

#
# /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

Obviamente, um desenvolvedor solicita permissões de execução/tmp para instalar um aplicativo ...

Estou achando que a remountopção não funciona neste sistema sem especificar o dispositivo e o (re) ponto de montagem. Este é um servidor com proteção de segurança, portanto, os problemas que eu estou vendo podem estar relacionados ao SElinux ou resultado das montagens de ligação, ou talvez até a presença de opções negadas (noexec versus exec) ...


O desenvolvedor está tentando executar o script diretamente de um shell ou web (por meio de httpd)? que mensagem de erro você vê quando tenta executar um script?
Daniel t.

Pense nisso como um instalador típico de aplicativo de terceiros que executa um executável binário ou shell /tmp. Oracle, por exemplo.
ewwhite

Este pode ser um problema do SELINUX, você pode tentar pesquisar ausearch -m AVC,USER_AVC -sv nona saída por tmperros.
Daniel t.

Respostas:


9

Digite isso no bash:

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

No meu sistema, isso produz uma saída como esta:

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

Experimente no seu sistema. Se você gosta da saída que ela produz, use-a ou remova as echoaspas duplas e do comando acima.


Você provavelmente precisará adicionar $devlá também ... #
freiheit

4

Eu usaria apenas um script para fazer isso nos sistemas de arquivos relevantes

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

Você pode precisar colocar um -ftambém se um ou mais fs estiverem ocupados, por exemplo

mount -f -o remount "$fs"

3

Na página de mountmanual :

A funcionalidade remontar segue a maneira padrão como o comando mount funciona com as opções do fstab. Isso significa que o comando mount não lê fstab (ou mtab) somente quando um dispositivo e dir são totalmente especificados.

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

Após esta chamada, todas as opções antigas de montagem são substituídas e as coisas arbitrárias do fstab são ignoradas, exceto a opção loop =, que é gerada e mantida internamente pelo comando mount.

  mount -o remount,rw  /dir

Portanto, mount -o remount /mountpointdeve restaurar as opções em /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)

Isso não funcionou no meu caso, mas pode ser resultado de outros fatores no sistema. Veja fstab atualizado acima.
ewwhite

@whwhite Não consigo reproduzir o problema usando as opções do fstab, então há outra coisa acontecendo.
mgorven

0

Você está mudando a dinâmica dos sinalizadores de montagem sem passar pelo / etc / fstab e reiniciar?

Você não pode fazer o seguinte (por exemplo):

 mount -o remount /usr

restaurar as opções originais do / etc / fstab? Você pode verificar as opções montadas usando o comando mount sem argumentos.


0

Você terá dificuldade em remontar sistemas de arquivos como / usr e / var quando o sistema estiver em funcionamento. A remontagem lenta, por exemplo, provavelmente retornará com êxito, mas nunca terá a oportunidade de executar a remontagem solicitada, pois haverá identificadores de arquivo mantidos abertos durante toda a vida útil do sistema.

Se esta é uma imagem de desenvolvimento, como parece, recomendo apenas inicializar o sistema para cada teste. É entediante, mas pelo menos você tem certeza de que o sistema está funcionando como seria na produção, para que seu teste seja confiável.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.