Представь, что ты только что развернул свой сервер TrueNAS. Диски отформатированы, пулы созданы, и ты готов начать работу с данными. Но как организовать доступ для себя и коллег? Как разделить права между отделами? Всё начинается с правильного управления пользователями TrueNAS. Давай разберем эту тему от А до Я, как настоящий DevOps инженер.
Что такое пользователи в TrueNAS и зачем они нужны?
В TrueNAS, как и в любой UNIX-подобной системе, пользователи — это фундаментальная концепция контроля доступа. Каждый файл и папка принадлежат конкретному пользователю и группе. Это позволяет:
- Изолировать данные разных людей или проектов.
- Настраивать тонкие права доступа для SMB (Windows общие папки), NFS, SFTP.
- Аудитировать действия: кто, что и когда изменил.
- Интегрироваться с Active Directory или LDAP для корпоративных сред.
Как добавить пользователя в TrueNAS: Пошаговое руководство
Добавить нового пользователя можно через веб-интерфейс или CLI. Рассмотрим оба способа, начиная с графического.
Способ 1: Через веб-интерфейс (GUI)
- Зайди в Credentials → Local Users и нажми ADD.
- Заполни основные поля:
- Full Name: Иван Петров (для удобства).
- Username: ivan_petrov — это и есть системное имя пользователя.
- Password и подтверждение.
- Primary Group: Можно оставить созданную по умолчанию (с таким же именем) или выбрать существующую, например,
developers.
- В блоке Directories and Permissions можно сразу указать домашнюю директорию пользователя (например,
/mnt/pool01/homes/ivan_petrov). TrueNAS создаст её автоматически. - Нажми SAVE. Новый пользователь TrueNAS создан!
Способ 2: Через командную строку (CLI/Shell)
Для автоматизации или если ты привык работать в терминале. Подключись к серверу по SSH.
# Добавляем пользователя 'dev_user' с UID 2001, основной группой 'developers' (GID 2000) и домашней директорией
sudo midclt call user.create '{
"username": "dev_user",
"full_name": "Developer User",
"password": "YourStrongP@ssw0rd!",
"group": 2000,
"home": "/mnt/pool01/homes/dev_user",
"shell": "/usr/bin/bash",
"uid": 2001
}'
Или классическим способом через pw (FreeBSD):
# Создаем группу (если её нет)
sudo pw groupadd developers -g 2000
# Создаем пользователя
sudo pw useradd dev_user -u 2001 -g developers -c "Developer User" -d /mnt/pool01/homes/dev_user -s /usr/bin/bash -m
# Устанавливаем пароль
sudo passwd dev_user
pw или редактирование /etc/passwd могут не полностью синхронизироваться с базой данных TrueNAS. Для долгосрочной поддержки используй midclt call или веб-интерфейс.
Настройка прав доступа для пользователей
Создать пользователя TrueNAS — это только половина дела. Теперь нужно дать ему доступ к данным через протоколы.
1. Настройка доступа к общим папкам (SMB/CIFS)
Допустим, у нас есть общая папка Projects, и мы хотим дать доступ пользователю dev_user.
- Перейди в Sharing → Windows Shares (SMB) и создай или отредактируй общий ресурс.
- В поле Path укажи путь к dataset'у (например,
/mnt/pool01/projects). - Нажми ADVANCED OPTIONS и найди поле Auxiliary Parameters. Здесь можно тонко настроить права с помощью smb.conf директив.
# Пример: Даем полный доступ dev_user и только чтение группе developers
valid users = @developers, dev_user
write list = dev_user
create mask = 0664
directory mask = 0775
2. Настройка прав файловой системы (ACLs)
Самый правильный способ — настроить POSIX или NFSv4 ACLs на самом dataset'е.
- Перейди в Storage → Datasets, выбери нужный dataset и нажми EDIT PERMISSIONS.
- В ACL Type выбери NFSv4 (более гибкий).
- Добавь ACE (Access Control Entry):
- Who: Пользователь —
dev_user - Permissions: Full Control (или Modify, Read, etc.)
- Type: Allow
- Who: Пользователь —
Группы пользователей: Организация доступа
Управлять правами для каждого пользователя TrueNAS индивидуально неэффективно. Используй группы.
| Группа (GID) | Назначение | Типичные права на Dataset |
|---|---|---|
| developers (2000) | Разработчики приложений | Read/Write на /mnt/pool01/code |
| media (2001) | Команда контент-мейкеров | Read/Write на /mnt/pool01/media |
| backup_ro (2002) | Сервисные аккаунты для бэкапов | Read-Only на /mnt/pool01/backups |
Создать группу и добавить в неё пользователя через CLI:
# Создаем группу через midclt
sudo midclt call group.create '{"name": "developers", "gid": 2000}'
# Добавляем существующего пользователя dev_user в группу developers (в дополнение к основной)
sudo midclt call user.update 2001 '{"groups": [2000, 2005]}' # где 2001 - UID пользователя, а 2005 - GID другой группы
Интеграция с внешними системами (Active Directory/LDAP)
Если у тебя корпоративная среда, то добавлять каждого пользователя TrueNAS вручную — не вариант. TrueNAS поддерживает интеграцию.
- Иди в Credentials → Directory Services.
- Выбери Active Directory или LDAP.
- Укажи данные домена/сервера, учётные данные для привязки.
- После успешного присоединения, пользователи и группы из AD/LDAP появятся в выпадающих списках при настройке ACL или SMB-шаров.
Частые проблемы и их решение (FAQ)
Пользователь не может зайти в общую SMB папку с Windows.
Решение: Проверь:
- Пароль пользователя не истёк и не требует смены при первом входе (сними флаг в настройках пользователя).
- В настройках SMB-шара указан
valid users = @groupname, username. - Нет конфликта разрешений между ACL файловой системы и настройками SMB.
Как изменить UID существующего пользователя?
Решение: Через веб-интерфейс нельзя. Используй команду в CLI. Но будь осторожен — это изменит владельца всех файлов, принадлежавших старому UID.
# Сначала измени UID в системе
sudo pw usermod dev_user -u 2100
# Затем обнови запись в базе данных TrueNAS (где 2001 - старый UID)
sudo midclt call user.update 2001 '{"uid": 2100}'
Пользователь из AD виден, но не может получить доступ к данным.
Решение: Скорее всего, проблема в кэшировании или маппинге ID. Попробуй:
- В Credentials → Directory Services → Active Directory нажми REBUILD DIRECTORY SERVICE CACHE.
- Проверь, что в настройках dataset'а в ACL ты выбираешь пользователя/группу из домена (они имеют префикс, например,
DOMAIN\\username).
Заключение и лучшие практики
Управление пользователями TrueNAS — это краеугольный камень безопасной и организованной системы хранения. Давай закрепим главное:
- Планируй структуру заранее: Продумай UID/GID ranges для локальных пользователей, чтобы не было конфликтов с AD.
- Работай через группы: Давай права группам, а не отдельным пользователям. Добавлять пользователя в группу проще, чем менять ACL 10 dataset'ов.
- Используй правильный тип ACL: NFSv4 для сложных сценариев, POSIX для простых.
- Документируй: Веди таблицу (как выше) с назначением групп и стандартными путями.
- Тестируй доступ: После настройки всегда проверяй доступ из-под учётной записи целевого пользователя.
Теперь ты знаешь не только как добавить пользователя в TrueNAS, но и как выстроить целую систему управления доступом. Как Senior DevOps, ты понимаешь, что это основа для автоматизации развёртывания, CI/CD пайплайнов и отказоустойчивых бэкапов. Иди и настрой свой NAS как профессионал!