Перейти к содержимому

core.mount

← Каталог модулей

soul-sidesoulstack.systemsystemroot требуется

Управление точками монтирования и записями /etc/fstab.

core.mount управляет двумя вещами независимо: записью в /etc/fstab (persist через reboot) и фактическим монтированием (runtime). present держит обе стороны сразу (запись в fstab + смонтировано), absent обе снимает; mounted и unmounted трогают только runtime, не касаясь fstab. Текущий статус читается через findmnt, все состояния идемпотентны. Требует root.

Требования

  • Rootтребуется
  • Сторонаsoul-side
  • Коллекцияsoulstack.system
  • Категорияsystem
Capabilitiesrun_as_rootexec_subprocessfs_write_root

Состояния

core.mount.present — Запись есть в /etc/fstab И ФС смонтирована (persist + runtime).

Меняется, когда

Изменился fstab (запись добавлена или обновлена), либо ФС не была смонтирована и смонтирована сейчас.

Не меняется, когда

Запись уже в fstab и ФС уже смонтирована — оба условия совпали.

Параметры

ПараметрТипОбяз. / дефолтОписание
pathstringrequiredТочка монтирования (target).
sourcestringrequiredИсточник (device/UUID/сетевой ресурс).
fstypestringrequiredТип ФС (ext4/nfs/…).
optsstringoptionalОпции монтирования (default "defaults").

Пример — Персистентный маунт data-тома

- name: Mount data volume persistently
module: core.mount.present
params:
path: /data
source: /dev/sdb1
fstype: ext4
opts: "defaults,noatime"

Output

ПолеТипОписание
pathstring
sourcestring
fstypestring
mountedtrue
in_fstabtrue

Заметки

  • present и absent трогают обе оси (fstab + runtime); mounted и unmounted — только runtime, запись fstab не касаются.
  • Ошибочный present пишет persistent-запись fstab и пытается смонтировать источник при каждой загрузке — цена ошибки в source/opts повторяется на каждом boot, в отличие от разового mounted.
  • Mount-point создаётся при монтировании, если каталога нет (mkdir -p, mode 0755).
  • Поля dump и pass в fstab фиксированы как 0 0 (параметрами не управляются); строка записи — <source> <path> <fstype> <opts> 0 0.
  • fstab правится preserve-by-default: атомарно (temp+rename), с сохранением существующих mode и владельца; owner/group fstab параметрами не принимаются.
  • Требует root: mount / umount и правка /etc/fstab.

Безопасность и умолчания

  • Монтирование недоверенного источника (особенно сетевого NFS/SMB) — главный риск: модуль доверяет содержимому смонтированной ФС. source под контролем атакующего может подсунуть setuid-файлы или symlink за пределы mount-point.
  • source, path, fstype, opts должны приходить от автора Destiny/scenario, а не из недоверенного ввода.
  • Защиту от setuid/устройств задаёт сам автор через opts (nosuid,nodev,noexec) — модуль их не навязывает (default defaults).
  • DoS через опции и источник: жёсткий hard NFS-mount на недоступный хост зависает и блокирует обращающиеся к mount-point процессы; tmpfs без size= исчерпает память.
  • Инъекция аргументов закрыта: позиционные source/path отделяются -- от опций mount/umount, shell не участвует.

См. также