Настройка контроля доступа в TrueNAS выходит за рамки простого создания общей папки. Это процесс проектирования системы прав, которая позволяет безопасно распределять управление данными между членами команды, минимизируя риски и сохраняя административный контроль. В отличие от единой учетной записи администратора, грамотное делегирование прав через пользователей, группы и ACL (Access Control Lists) создает основу для эффективной совместной работы в отделах разработки, аналитики или технической поддержки.
Это руководство предоставляет готовую методологию: от построения логичной структуры каталогов и групп до внедрения конкретных схем прав для типовых рабочих сценариев. Вы получите проверенные пошаговые инструкции по настройке ACL для протоколов SMB (Windows) и NFS (Linux), что позволит организовать доступ в смешанных средах. Акцент сделан на практическом применении с минимальным временем на внедрение и гарантией результата.
От простого хранения к командной работе: фундамент системы прав TrueNAS
Переход от персонального NAS к корпоративному хранилищу начинается с изменения подхода. Вместо мышления «мой сервер» нужно проектировать систему «сервер для команды». Основой такой системы в TrueNAS служат три ключевые сущности: локальные пользователи и группы, датасеты ZFS как контейнеры для применения политик, и два типа разрешений - классические UNIX (POSIX) и расширенные ACL. Продуманная структура на этом этапе предотвращает хаос в управлении правами в будущем.
TrueNAS поддерживает как локальные учетные записи, так и интеграцию с внешними источниками вроде Active Directory или LDAP. Для начала работы и построения понятной модели достаточно локальных пользователей и групп. Датасеты (Datasets) - это не просто папки, а фундаментальные единицы ZFS с собственными свойствами. Права доступа, квоты и снапшоты назначаются на уровне датасета, что делает их идеальными границами для изоляции проектов или отделов.
Пользователи и группы: основа любой политики доступа
Создание учетных записей должно отражать роли в команде, а не имена людей. Это упрощает масштабирование и аудит. Алгоритм выглядит так:
- Создайте группы, соответствующие отделам или функциям. Используйте понятные префиксы:
group_developers,group_analytics,role_backup_admins. - Создайте пользователей и добавьте их в соответствующие группы. Имя пользователя может быть как персонализированным (
user_jdoe), так и ролевым (svc_backupдля служебной учетной записи). - Назначайте права всегда группам, а не отдельным пользователям. Это главный принцип управления доступом.
Создать группу и пользователя можно в веб-интерфейсе TrueNAS в разделах «Учетные записи» -> «Группы» и «Учетные записи» -> «Пользователи». При создании пользователя укажите его основную группу и добавьте во вспомогательные при необходимости. Для служебных учетных записей (например, для автоматического бэкапа) установите флаг «Заблокировать пользователя» и используйте только ключи SSH или токены.
Датасеты как контейнеры для прав: планируем структуру каталогов
Хаотичное хранение файлов в одном датасете приводит к сложностям в управлении ACL и применении политик. Рекомендуемая масштабируемая структура основана на логическом разделении:
- tank/dept_projects/[project_name]: Отдельный датасет для каждого проекта. Это позволяет назначать уникальные ACL, устанавливать квоты на дисковое пространство и управлять снапшотами в разрезе проекта.
- tank/shared/templates: Датасет для шаблонов и документации только для чтения.
- tank/shared/temp_drop: Датасет для временной загрузки файлов с особыми правами.
- tank/home/[username]: Отдельные датасеты для персональных домашних каталогов пользователей.
Такая структура напрямую связывается с группами доступа. Например, группа group_project_alpha получает права на запись в tank/dept_projects/alpha, а group_all_staff - права на чтение в tank/shared/templates. Создание датасета - это операция в несколько кликов в интерфейсе TrueNAS в разделе «Хранилище». Начните с корневого пула (например, tank), затем создавайте вложенные датасеты согласно выбранной структуре.
ACL TrueNAS: тонкая настройка прав для SMB и NFS
Классические права UNIX (владелец, группа, другие) часто недостаточны для сложных командных сценариев. Они позволяют задать только один набор разрешений для владельца, одной группы и всех остальных. Расширенные ACL (Access Control Lists) в TrueNAS решают эту проблему, позволяя назначать разные права для неограниченного числа пользователей и групп на один файл или папку. Это особенно критично в смешанных средах, где доступ требуется одновременно для Windows-клиентов через SMB и Linux-серверов через NFS.
TrueNAS работает с двумя основными типами ACL: POSIX (NFSv4) и Windows-подобные (SMB). Интерфейс настройки ACL унифицирован и позволяет управлять правами для обоих протоколов, но понимание их особенностей предотвращает ошибки. ACL состоят из записей (ACE), где каждая запись определяет, кому (пользователь/группа) и какие разрешения (чтение, запись, выполнение и др.) предоставлены или запрещены, а также как эти права наследуются вложенными объектами.
Выбор между POSIX и расширенными ACL: практические рекомендации
Выбор типа управления правами зависит от сложности требуемого сценария. Используйте простые права POSIX (режим «Унаследовано» в интерфейсе TrueNAS) в случаях:
- Одна группа пользователей является единственным владельцем данных (например, папка для конкретного отдела).
- Не требуется сложное наследование прав от родительской папки к вложенным.
- Основной доступ осуществляется по NFS, и не нужна глубокая интеграция с Windows ACL.
Переходите на расширенные ACL (режим «SMB» или «NFSv4»), когда необходимо:
- Назначить разные права нескольким группам на одну папку (например, разработчики - чтение/запись, тестировщики - только чтение).
- Реализовать особые права, такие как «удаление только собственных файлов».
- Точно контролировать наследование (например, применить права только к файлам, но не к подпапкам).
- Обеспечить полное соответствие требованиям Windows-среды, включая работу с Active Directory.
В веб-интерфейсе TrueNAS тип ACL выбирается в свойствах датасета на вкладке «Дополнительные ACL». После смены типа с «Унаследовано» на «SMB» или «NFSv4» открывается редактор для тонкой настройки.
Пошаговая настройка ACL для общего ресурса SMB
Этот алгоритм гарантирует корректную работу доступа с Windows-клиентов:
- Создайте датасет под общий ресурс (например,
tank/dept_projects/alpha). В его свойствах сразу установите «Тип ACL» - «SMB». - Настройте ACL. В редакторе ACL датасета нажмите «ДОБАВИТЬ ЗАПИСЬ».
• В поле «Кому» выберите «Группа» и укажите, например,group_project_alpha.
• В «Разрешениях» выберите «Модифицировать» (это даст права на чтение, запись, создание и удаление файлов).
• В «Флаги наследования» выберите «Этот каталог, подкаталоги и файлы».
• Добавьте вторую запись для пользователя-администратора проекта с правами «Полный доступ». - Создайте общий ресурс SMB. В разделе «Общий доступ» -> «Общие ресурсы Windows (SMB)» создайте новый ресурс, указав путь к вашему датасету.
- Включите важные опции. В расширенных настройках ресурса активируйте «Access Based Share Enumeration (ABSE)». Это скроет ресурс из сетевого окружения Windows для пользователей, у которых нет на него прав.
После этого пользователи Windows смогут подключиться к сетевому диску, используя свои учетные данные TrueNAS, и получат именно те права, которые заданы в ACL. Для более глубокого понимания основ SMB в TrueNAS, рекомендуем ознакомиться с полным руководством по настройке SMB, NFS и FTP.
Настройка прав для общего ресурса NFS
Управление доступом для Linux-клиентов через NFS - это комбинация настроек экспорта на сервере и прав файловой системы на датасете.
- Настройте датасет. Для NFS можно использовать как POSIX права, так и ACL типа «NFSv4». Для простых сценариев достаточно задать владельца и группу датасета (например, UID/GID группы
group_developers). - Создайте экспорт NFS. В разделе «Общий доступ» -> «Общие ресурсы Unix (NFS)» создайте новый экспорт, указав путь к датасету.
- Настройте параметры экспорта. Ключевые параметры:
• «Сети»: укажите подсеть ваших Linux-серверов (например,192.168.1.0/24).
• «Параметры безопасности»: для большинства случаев оставьте «sys».
• «Карта root» (root squashing): обязательно включите (опция «Карта root в пользователя»). Это предотвратит доступ клиента от имени root, повышая безопасность. - Согласуйте UID/GID. Убедитесь, что UID (User ID) и GID (Group ID) пользователей и групп на Linux-клиентах совпадают с таковыми на TrueNAS. Это основа корректного определения прав.
После экспорта клиенты смогут смонтировать ресурс командой mount -t nfs truenas.local:/mnt/tank/dept_projects/alpha /mnt/alpha. Если используются ACL NFSv4, их можно просмотреть на клиенте командой nfs4_getfacl /mnt/alpha. Детали настройки высокопроизводительного NFS-сервера описаны в отдельном практическом руководстве.
Готовые схемы прав для типовых сценариев совместной работы
Эти конфигурации можно внедрить сразу, сэкономив время на проектирование.
Папка проекта: доступ для команды и администратора проекта
Сценарий: Папка project_alpha для рабочей группы. Участники команды вносят изменения, лидер проекта (администратор) управляет структурой и правами.
Реализация:
- Создайте группы:
group_alpha_team(участники),role_project_admins(лидеры). - На датасете проекта настройте ACL типа «SMB» с двумя записями:
1. Дляgroup_alpha_team: Разрешения = «Модифицировать», Наследование = «Этот каталог, подкаталоги и файлы».
2. Дляrole_project_adminsили конкретного пользователяuser_pm_ivanov: Разрешения = «Полный доступ», Наследование = «Этот каталог, подкаталоги и файлы».
В результате участники команды смогут работать с файлами, но не смогут, например, изменять права доступа для других. Администратор проекта получит полный контроль.
Дроп-зона для загрузки: "складывай, но не смотри"
Сценарий: Папка incoming_drop для загрузки файлов от внешних контрагентов. Загружающий не должен видеть содержимое папки или файлы других.
Реализация: Это достигается специальными правами ACL.
- Создайте группу
group_external_upload. - В ACL папки настройте запись для этой группы:
• Разрешения: Отметьте ТОЛЬКО «Добавить файл / Добавить данные» (Create files / Write data) и «Создать папки / Добавить подкаталог».
• ЯВНЫМ образом снимите галочки со «Список папки / Чтение данных» (List folder / Read data) и «Чтение». - Добавьте вторую запись для внутренней группы обработки
group_internal_processс правами «Чтение» и «Удаление».
Внешний пользователь сможет скопировать файл в папку, но не увидит ее содержимое и не сможет прочитать или удалить чужие файлы.
Библиотека шаблонов и документации: только для чтения
Сценарий: Централизованное хранилище templates с неизменяемыми шаблонами документов, политиками, руководствами для всех сотрудников.
Реализация: Самая простая схема.
- Создайте группу
group_all_company_usersи включите в нее всех пользователей. - В ACL датасета
templatesнастройте одну запись для этой группы:
• Разрешения: ТОЛЬКО «Чтение» и «Выполнение».
• Наследование: «Этот каталог, подкаталоги и файлы». - Убедитесь, что у владельца датасета (например,
rootили служебной учетной записи) есть права «Полный доступ» для внесения обновлений.
Такая настройка защитит библиотеку от случайного или намеренного изменения. Для управления подобными структурами, особенно при работе с большими медиафайлами, может быть полезна статья об архитектуре хранения видео на TrueNAS.
Проверка, аудит и поддержка: убеждаемся, что все работает
Настройка прав - только половина дела. Верификация гарантирует, что система работает как задумано, а план изменений позволяет безопасно её модифицировать.
Как проверить права на практике: тестирование доступа
Используйте этот чек-лист перед сдачей системы в эксплуатацию:
- Тест с Windows: Подключитесь к SMB-шаре с рабочей станции под учетной записью тестового пользователя. Попробуйте выполнить целевые действия: создать файл или папку, открыть существующий файл, удалить созданный вами файл, попытаться удалить чужой файл или изменить права. Убедитесь, что запреты работают.
- Тест с Linux: Смонтируйте NFS-экспорт. Проверьте те же операции от имени пользователя с соответствующим UID/GID.
- Просмотр эффективных прав:
• На стороне TrueNAS: в Shell используйте командуgetfacl /mnt/tank/dept_projects/alphaдля просмотра ACL.
• На Windows: используйте командуicacls \\truenas\alphashareв командной строке. - Проверка ABSE: Убедитесь, что пользователь без прав доступа к шаре не видит её в сетевом окружении.
Логи проблем с доступом можно найти в веб-интерфейсе TrueNAS: «Отчеты» -> «Журналы системных сообщений» или в логах конкретной службы (SMB, NFS).
Миграция и изменение прав: как делать это безопасно
Изменение работающей схемы прав требует осторожности, чтобы не нарушить бизнес-процессы.
- Создайте тестовую копию. Используйте функцию снапшотов ZFS или репликации, чтобы создать точную копию датасета с данными и правами для тестирования новых настроек.
- Действуйте поэтапно. При изменении ACL сначала добавьте новые права для целевых пользователей/групп. Убедитесь, что доступ работает. Только после этого удаляйте старые, ненужные записи.
- Информируйте пользователей. Запланируйте изменения на нерабочее время и заранее уведомите команду о возможных кратковременных перерывах в доступе.
- Документируйте. Ведите простой документ с описанием текущей схемы прав (какая группа, какие права, на каком датасете) и целевой схемы после изменений. Это упрощает аудит и восстановление.
Для масштабных изменений или автоматизации процесса управления правами рассмотрите возможность использования TrueNAS SCALE REST API, который позволяет программно управлять пользователями, группами, ACL и общими ресурсами. Для усиления безопасности периметра самого хранилища также может быть полезна настройка геофильтрации в TrueNAS.
Грамотно настроенная система делегирования прав превращает TrueNAS из изолированного хранилища в центральный безопасный хаб для данных всей команды. Начните с внедрения рекомендованной структуры каталогов и групп, затем примените готовые схемы ACL для своих сценариев. Такой подход минимизирует риски, экономит время на администрировании и создает прозрачную, масштабируемую основу для совместной работы.