Работали ли вы с опциями монтирования файловых систем в Linux?

«Работали ли вы с опциями монтирования файловых систем в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, постоянно работаю с опциями монтирования как при администрировании серверов, так и в контексте контейнеризации (Kubernetes, Docker).

Основные опции и их применение в DevOps:

  • noexec, nodev, nosuid — критически важны для безопасности. Применяю для томов, куда загружаются пользовательские данные или которые используются как общее хранилище, чтобы предотвратить выполнение вредоносного кода.
  • rw/ro — управление правами на запись. Например, монтирую конфигурационные volume'ы в ro для пода, чтобы предотвратить их случайное изменение.
  • discard/nodiscard — для SSD-устройств.
  • defaults — включает rw,suid,dev,exec,auto,nouser,async.

Примеры использования:

  1. В /etc/fstab для системного диска:
    UUID=xxxx-xxxx / ext4 defaults,errors=remount-ro 0 1
  2. В Kubernetes PersistentVolume для безопасного хранения:
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-secure-data
    spec:
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - noexec
        - nodev
        - nosuid
      hostPath:
        path: /mnt/secure-data
  3. При ручном монтировании для резервного копирования:
    mount -o ro,nosuid,nodev /dev/sdc1 /mnt/backup

    Выбор опций — это всегда баланс между функциональностью, производительностью и требованиями безопасности конкретного сервиса.