Soru / Etc / fstab ayarlarını geri yüklemek veya yeniden yüklemek için hızlı yol?


Bir kompleks ile çalışıyorum /etc/fstab RHEL 6.x tabanlı bir sunucuda. Sistem, çeşitli bağlantı parçaları dahil olmak üzere sekiz bölüme kadar kullanımda olan çeşitli montaj seçeneklerine sahiptir. Seçeneklerimi ve üzerinde çalıştığım görüntü üzerindeki etkilerini test ediyorum.

Örneğin. gibi seçenekler nodev,nosuid,noexec,nobarrier ve birkaç XFS dosya sistemi parametreleri yerinde.

Belirli seçeneklerle yeniden bağlantı kurmanın mümkün olduğunu bilerek, tüm montajları sabit kodlanmış kalıcı ayarlara döndürmenin hızlı bir yolu var mı? /etc/fstab?

Örneğin sysctl -p yükler /etc/sysctl.conf Değerler ve bunları uygular. Orada bir mount eşdeğer?


Düzenle:

Örnek bir yapılandırma:

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

Tabii ki geliştirici soruyor gerçekleştirmek izinler /tmp Bir uygulamayı yüklemek için ...

Onu buluyorum remount Bu sistemde, cihaz belirtmeden seçenek çalışmaz ve (Yeniden) bağlama noktasının. Bu güvenlik sertleştirilmiş bir sunucudur, bu yüzden gördüğüm sorunlar SElinux ile ilgili olabilir veya bağlama bağlantılarının bir sonucu olabilir, ya da belki de olumsuz seçeneklerin varlığı (noexec'e karşı exec) ...


11
2018-02-07 18:12


Menşei


Geliştirici, bir kabuk veya web'den (httpd) komut dosyasını doğrudan çalıştırmaya mı çalışıyor? Bir komut dosyasını çalıştırmayı denediğinizde hangi hata mesajını görüyorsunuz? - Daniel t.
Bir ikili veya kabuk yürütülebilir dosyasını dökülen tipik bir üçüncü taraf uygulama yükleyicisi olarak düşünün. /tmp. Örneğin Oracle. - ewwhite
Bu bir SELINUX sorunu olabilir, deneyebilirsiniz ausearch -m AVC,USER_AVC -sv no ve herhangi bir çıktı için tmp hatalar. - Daniel t.


Cevaplar:


Bunu bash'a yazın:

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

Sistemimde, bu şekilde çıktı üretir:

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

Sisteminizde deneyin. Eğer onu beğenirseniz, üretir, kullanın ya da sadece echo ve yukarıdaki komuttan çift tırnak işareti.


9
2018-02-07 18:23



Büyük ihtimalle eklemelisin. $dev Orada da ... - freiheit


Sadece ilgili dosya sistemleri için bir betik kullanırdım

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

Koymak gerekebilir -f Orada da bir veya daha fazla fs meşgul olabilir, örn.

mount -f -o remount "$fs"

4
2018-02-07 18:26





İtibaren mount manpage:

Remount işlevi, mount komutunun standart yolunu izler.   fstab seçenekleriyle çalışır. Bu, mount komutunun fstab okumaması anlamına gelir   (veya mtab) sadece bir cihaz ve dir tamamen belirtildiğinde.

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

Bu çağrıdan sonra tüm eski mount seçenekleri değiştirilir ve keyfi   dahili olarak oluşturulan döngü = seçeneği dışında fstab göz ardı edilir   ve mount komutuyla sürdürülür.

  mount -o remount,rw  /dir

Yani mount -o remount /mountpoint içindeki seçenekleri geri yüklemelidir /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)

3
2018-02-07 18:26



Bu benim durumumda çalışmadı, ancak sistemdeki diğer faktörlerin bir sonucu olabilir. Yukarıdaki güncelleştirilmiş fstab'a bakınız. - ewwhite
@ewwhite Fstab seçeneklerinizi kullanarak sorunu yeniden oluşturamıyorum, bu yüzden devam eden başka bir şey var. - mgorven


/ Etc / fstab'a geçmeden ve yeniden başlatmadan, mount bayraklarının dinamiklerini değiştiriyor musunuz?

Aşağıdakileri yapamaz mısın (örneğin):

 mount -o remount /usr

Orijinal seçenekleri / etc / fstab'dan geri yüklemek için? Bağlama seçeneklerini argümanlar olmadan mount komutunu kullanarak kontrol edebilirsiniz.


0
2018-02-07 18:23





Sistem çalıştığında ve çalıştığında / usr ve / var gibi dosya sistemlerini yeniden takmak için zor bir zaman geçireceksiniz. Tembel yeniden montaj, örneğin, muhtemelen sadece bir başarı döndürecektir, ancak aslında talep edilen yeniden yükleme işlemini gerçekleştirmek için hiçbir zaman bir fırsat elde edemeyecektir, çünkü dosya tutacakları sistemin tüm çalışma ömrünü açık tutmaya devam edecektir.

Bu bir geliştirme görüntüsü ise, göründüğü gibi, her bir test için sistemi yeniden başlatmanızı tavsiye ederim. Sıkıcı ama en azından, sistemin üretimde olduğu gibi çalıştığından emin olabilirsiniz, bu yüzden testiniz güvenilirdir.


0
2018-02-07 18:28