Швидкий спосіб відновлення або перезавантаження / etc / fstab налаштувань?


11

Я працюю з комплексом /etc/fstabна сервері на базі RHEL 6.x. Система має різні варіанти кріплення, які використовуються у восьми розділах, включаючи декілька кріплення кріплення. Я тестую параметри та їх вплив на зображення, над яким я працюю.

наприклад , такі опції , як nodev, nosuid, noexec, nobarrierі кілька XFS файлової системи параметрів на місці.

Хоча я знаю, що можливо повторно встановити певні параметри, чи є швидкий спосіб повернути всі кріплення до стійких налаштувань, жорстко кодованих /etc/fstab?

Наприклад, sysctl -pзавантажує /etc/sysctl.confзначення та застосовує їх. Є mountеквівалент?


Редагувати:

Приклад конфігурації:

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

Звичайно, розробник просить виконати дозволи на /tmpвстановлення програми ...

Я знаходжу, що remountопція не працює в цій системі без вказівки пристрою та (повторної) точки монтування. Це захищений безпекою сервер, тому проблеми, які я бачу, можуть бути пов'язані з SElinux або наслідком прив'язки монтажу, або, можливо, навіть наявність заперечених параметрів (noexec порівняно з exec) ...


Чи розробник намагається виконати скрипт безпосередньо з оболонки або веб-сторінки (через httpd)? яке повідомлення про помилку ви бачите при спробі виконання сценарію?
Даніель т.

Подумайте про це як про типового стороннього інсталятора додатків, який скидає бінарний або оболонку, що виконується /tmp. Наприклад, Oracle.
ewwhite

Це може бути проблема SELINUX, ви можете спробувати ausearch -m AVC,USER_AVC -sv noпройти через висновок для будь-яких tmpпомилок.
Даніель т.

Відповіді:


9

Введіть це в bash:

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

У моїй системі це дає такий вихід:

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

Спробуйте це у своїй системі. Якщо вам подобається, що він виробляє, використовуйте його або просто видаліть echoі подвійні лапки з команди вище.


Напевно, вам теж потрібно додати $devтуди ...
freiheit

4

Я просто використовую сценарій, щоб зробити це для відповідних файлових систем

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

Можливо, вам знадобиться помістити -fтуди, якщо один або більше службовців можуть бути зайняті, наприклад

mount -f -o remount "$fs"

3

З mountсторінки керівництва :

Функція повторного перегляду відповідає стандартному способу роботи команди mount з параметрами fstab. Це означає, що команда mount не читає fstab (або mtab) лише тоді, коли пристрій та dir повністю вказані.

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

Після цього виклику всі старі параметри кріплення замінюються, а довільні речі з fstab ігноруються, за винятком опції loop =, яка внутрішньо генерується та підтримується командою mount.

  mount -o remount,rw  /dir

Тому mount -o remount /mountpointслід відновити параметри в /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)

У моєму випадку це не спрацювало, але може бути наслідком інших факторів у системі. Дивіться оновлений fstab вище.
ewwhite

@ewwhite Я не можу відтворити проблему, використовуючи ваші параметри fstab, тому відбувається щось інше.
mgorven

0

Ви змінюєте динаміку прапорів кріплення, не проходячи через / etc / fstab та перезавантажуючись?

Ви не можете зробити наступне (наприклад):

 mount -o remount /usr

відновити вихідні параметри з / etc / fstab? Ви можете перевірити змонтовані параметри за допомогою команди mount без аргументів.


0

У вас буде важко перераховувати файлові системи на зразок / usr та / var, коли система буде запущена та працює. Наприклад, ледачий перерахунок, ймовірно, просто поверне успіх, але ніколи насправді не отримає можливість виконати потрібне перезавантаження, оскільки ручки файлів будуть відкриті протягом усього часу роботи системи.

Якщо це образ розвитку, як це здається, тоді я рекомендую просто завантажувати систему чистою для кожного тесту. Це нудно, але принаймні тоді ви точно знаєте, що система працює так, як була б у виробництві, тому ваш тест є надійним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.