Cách nhanh chóng để khôi phục hoặc tải lại cài đặt / etc / fstab?


11

Tôi đang làm việc với một phức tạp /etc/fstabtrên máy chủ dựa trên RHEL 6.x. Hệ thống có nhiều tùy chọn gắn kết được sử dụng trên tám phân vùng, bao gồm một số gắn kết liên kết. Tôi đang thử nghiệm các tùy chọn và ảnh hưởng của chúng đến hình ảnh tôi đang làm việc.

ví dụ như lựa chọn thích nodev, nosuid, noexec, nobarriervà một số XFS hệ thống tập tin thông số được đưa ra.

Mặc dù tôi biết có thể kết hợp lại với các tùy chọn cụ thể, nhưng có cách nào nhanh chóng để hoàn nguyên tất cả các giá trị gắn kết với các cài đặt liên tục được mã hóa cứng /etc/fstabkhông?

Ví dụ sysctl -ptải các /etc/sysctl.confgiá trị và áp dụng chúng. Có mounttương đương không?


Biên tập:

Một ví dụ cấu hình:

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

Tất nhiên, nhà phát triển yêu cầu thực thi quyền /tmpđể cài đặt ứng dụng ...

Tôi thấy rằng remounttùy chọn này không hoạt động trên hệ thống này mà không chỉ định thiết bị (lại) điểm gắn kết. Đây là một máy chủ được tăng cường bảo mật, do đó, các vấn đề tôi gặp có thể liên quan đến SElinux hoặc là kết quả của các liên kết gắn kết, hoặc thậm chí có thể có sự hiện diện của các tùy chọn phủ định (noexec so với exec) ...


Là nhà phát triển đang cố gắng thực thi tập lệnh trực tiếp từ trình bao hoặc web (thông qua httpd)? bạn thấy thông báo lỗi gì khi bạn cố gắng thực thi một tập lệnh?
Daniel t.

Hãy nghĩ về nó như một trình cài đặt ứng dụng của bên thứ ba điển hình có thể thực hiện nhị phân hoặc shell thực thi /tmp. Oracle, ví dụ.
ewwhite

Đây có thể là sự cố TỰ ĐỘNG, bạn có thể thử ausearch -m AVC,USER_AVC -sv novà xem qua đầu ra cho bất kỳ tmplỗi nào .
Daniel t.

Câu trả lời:


9

Nhập cái này vào bash:

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

Trên hệ thống của tôi, điều này tạo ra đầu ra như thế này:

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

Hãy thử nó trên hệ thống của bạn. Nếu bạn thích nó xuất ra nó, hãy sử dụng nó, hoặc chỉ cần loại bỏ echovà dấu ngoặc kép từ lệnh trên.


Có lẽ bạn cũng cần phải thêm $devvào đó ...
freiheit

4

Tôi sẽ chỉ sử dụng một tập lệnh để làm điều đó cho các hệ thống tập tin có liên quan

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

Bạn cũng có thể cần đặt một cái -fở đó nếu một hoặc nhiều fs có thể bận, vd

mount -f -o remount "$fs"

3

Từ mounttrang hướng dẫn :

Chức năng remount tuân theo cách tiêu chuẩn cách lệnh mount hoạt động với các tùy chọn từ fstab. Điều đó có nghĩa là lệnh mount không đọc fstab (hoặc mtab) chỉ khi một thiết bị và thư mục được chỉ định đầy đủ.

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

Sau cuộc gọi này, tất cả các tùy chọn gắn kết cũ được thay thế và các công cụ tùy ý từ fstab bị bỏ qua, ngoại trừ tùy chọn loop = được tạo và duy trì bên trong bởi lệnh mount.

  mount -o remount,rw  /dir

Vì vậy, mount -o remount /mountpointnên khôi phục các tùy chọn trong /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)

Điều này không hoạt động trong trường hợp của tôi, nhưng có thể là kết quả của các yếu tố khác trên hệ thống. Xem fstab cập nhật ở trên.
ewwhite

@ewwhite Tôi không thể tái tạo vấn đề bằng các tùy chọn fstab của bạn, vì vậy có một cái gì đó khác đang diễn ra.
mgorven

0

Bạn có đang thay đổi động lực học của các cờ gắn kết mà không thông qua / etc / fstab và khởi động lại không?

Bạn không thể làm như sau (ví dụ):

 mount -o remount /usr

để khôi phục các tùy chọn ban đầu từ / etc / fstab? Bạn có thể kiểm tra các tùy chọn được gắn bằng lệnh mount mà không cần đối số.


0

Bạn sẽ gặp khó khăn khi kết nối các hệ thống tập tin như / usr và / var sau khi hệ thống hoạt động. Ví dụ, việc lười biếng có thể sẽ trả lại thành công nhưng thực sự không bao giờ có cơ hội để thực hiện việc yêu cầu vì sẽ có các tệp xử lý tiếp tục mở toàn bộ thời gian hoạt động của hệ thống.

Nếu đây là một hình ảnh phát triển, vì nó nghe có vẻ như vậy, thì tôi khuyên bạn chỉ nên khởi động hệ thống sạch sẽ cho mỗi thử nghiệm. Thật tẻ nhạt, nhưng ít nhất sau đó bạn biết chắc hệ thống đang vận hành theo cách nó sẽ được sản xuất, vì vậy bài kiểm tra của bạn rất đáng tin cậy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.