
Я хочу включить ACL для системы FreeBSD 11. СогласноСправочник FreeBSDэто можно сделать двумя способами:
Используя опцию монтирования —
mount -o acls
Изменяя суперблок —
tunefs -a enable
В нем говорится, что предпочтительнее использовать второй вариант, потому что:
Флаг ACL времени монтирования не может быть изменен повторным монтированием (mount(8) -u), только посредством полного umount(8) и свежего монтирования(8). Это означает, что ACL не могут быть включены в корневой файловой системе после загрузки. Это также означает, что вы не можете изменить расположение файловой системы после того, как она используется.
Установка флага суперблока приведет к тому, что файловая система всегда будет монтироваться с включенными ACL, даже если нет записи fstab или если устройства переупорядочены. Это предотвращает случайное монтирование файловой системы без включенных ACL, что может привести к неправильному применению ACL и, следовательно, проблемам безопасности.
Из тюнефовстраница руководства:
Утилита tunefs предназначена для изменения динамических параметров файловой системы UFS, которые влияют на политики компоновки. Утилиту tunefs нельзя запустить на активной файловой системе. Чтобы изменить активную файловую систему, ее необходимо понизить до уровня «только для чтения» или размонтировать.
Проблема в том, что rootfs (/) невозможно размонтировать.
Как запустить tunefs в корневой файловой системе?
решение1
Вы можете принудительно перемонтировать файловую систему в режим «только для чтения»:
mount -fur /
tunefs -a enable /
reboot
Этот reboot
шаг, по-видимому, необходим: во-первых, повторное монтирование в режиме чтения-записи ( mount -uw /
) не поднимает флаг включения ACL, а во-вторых, повторное монтирование в режиме только для чтения сломает все, что пытается записать на диск (например, syslogd), поэтому на этом этапе лучше просто перезагрузить систему.