Modo rapido per ripristinare o ricaricare le impostazioni / etc / fstab?


11

Sto lavorando con un complesso /etc/fstabsu un server basato su RHEL 6.x. Il sistema ha una varietà di opzioni di montaggio in uso in otto partizioni, tra cui diversi supporti di collegamento. Sto testando le opzioni e il loro effetto sull'immagine su cui sto lavorando.

ad esempio opzioni come nodev, nosuid, noexec, nobarriere diversi XFS filesystem parametri sono a posto.

Mentre so che è possibile rimontare con opzioni specifiche, c'è un modo rapido per ripristinare tutti i supporti alle impostazioni persistenti inserite nel codice /etc/fstab?

Ad esempio sysctl -pcarica i /etc/sysctl.confvalori e li applica. C'è un mountequivalente?


Modificare:

Un esempio di configurazione:

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

Naturalmente, uno sviluppatore richiede le autorizzazioni di esecuzione/tmp per installare un'applicazione ...

Sto scoprendo che l' remountopzione non funziona su questo sistema senza specificare il dispositivo e (ri) mountpoint. Questo è un server rafforzato dalla sicurezza, quindi i problemi che sto riscontrando potrebbero essere relativi a SElinux o il risultato di montaggi di bind, o forse anche la presenza di opzioni negate (noexec contro exec) ...


Lo sviluppatore sta cercando di eseguire lo script direttamente da una shell o web (tramite httpd)? quale messaggio di errore viene visualizzato quando si tenta di eseguire uno script?
Daniel t.

Pensalo come un tipico programma di installazione di applicazioni di terze parti che scarica un eseguibile binario o shell /tmp. Oracle, per esempio.
ewwhite,

Questo potrebbe essere un problema SELINUX, potresti provare a ausearch -m AVC,USER_AVC -sv noesaminare l'output per eventuali tmperrori.
Daniel t.

Risposte:


9

Digita questo in bash:

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

Sul mio sistema, questo produce output in questo modo:

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

Provalo sul tuo sistema. Se ti piace l'output che produce, usalo o rimuovi semplicemente echole virgolette doppie e il comando sopra.


Probabilmente dovrai aggiungere anche $devlì ...
Freiheit

4

Vorrei solo usare uno script per farlo per i file system pertinenti

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

Potrebbe essere necessario inserire -fanche lì se una o più fs potrebbero essere occupate, ad es

mount -f -o remount "$fs"

3

Dalla mountmanpage :

La funzionalità di rimontaggio segue il modo standard in cui il comando mount funziona con le opzioni di fstab. Significa che il comando mount non legge fstab (o mtab) solo quando un dispositivo e una directory sono completamente specificati.

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

Dopo questa chiamata, tutte le vecchie opzioni di mount vengono sostituite e le cose arbitrarie di fstab vengono ignorate, ad eccezione dell'opzione loop = che viene generata internamente e gestita dal comando mount.

  mount -o remount,rw  /dir

Quindi mount -o remount /mountpointdovrebbe ripristinare le opzioni in /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)

Questo non ha funzionato nel mio caso, ma potrebbe essere il risultato di altri fattori sul sistema. Vedi fstab aggiornato sopra.
ewwhite,

@ewwhite Non riesco a riprodurre il problema usando le tue opzioni fstab, quindi c'è qualcos'altro in corso.
mgorven

0

Stai cambiando la dinamica dei flag di mount senza passare attraverso / etc / fstab e riavviare?

Non puoi fare quanto segue (ad esempio):

 mount -o remount /usr

ripristinare le opzioni originali da / etc / fstab? Puoi controllare le opzioni montate usando il comando mount senza argomenti.


0

Avrai difficoltà a rimontare i filesystem come / usr e / var una volta che il sistema è attivo e funzionante. Il rimontaggio pigro, ad esempio, probabilmente restituirà semplicemente un successo, ma in realtà non avrà mai l'opportunità di eseguire il rimontaggio richiesto perché ci saranno handle di file tenuti aperti per l'intera durata del sistema.

Se questa è un'immagine di sviluppo, come sembra, allora consiglio di avviare il sistema in modo pulito per ogni test. È noioso, ma almeno allora sai per certo che il sistema funziona come sarebbe in produzione, quindi il tuo test è affidabile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.