Root доступ в TrueNAS: как получить, настройка, безопасность | AdminWiki

Получение root доступа в TrueNAS: Полное руководство для администраторов

29 января 2026 6 мин. чтения #freebsd #linux #nas #root #ssh #truenas #администрирование #безопасность #доступ

Что такое root в TrueNAS и зачем он нужен?

Представь, что TrueNAS — это твой личный цифровой форт. Веб-интерфейс — это парадные ворота с охраной, где можно делать только разрешенные действия. А root — это тайный туннель, ведущий прямо в командный центр. Это учетная запись суперпользователя с неограниченными правами во всей системе.

Важно понимать: По умолчанию TrueNAS ограничивает прямой root доступ через SSH для безопасности. Веб-интерфейс работает от имени пользователя www, а не root.

Методы получения root доступа в TrueNAS

Давай разберем все рабочие способы, от самых простых до продвинутых. Выбор зависит от твоей версии TrueNAS и уровня доступа.

Способ 1: Через веб-интерфейс (Рекомендуемый)

TrueNAS Scale (на базе Linux) и Core (на базе FreeBSD) позволяют включить root доступ через настройки:

  1. Зайди в веб-интерфейс TrueNAS
  2. Перейди в System Settings → SSH (или Services → SSH в некоторых версиях)
  3. Включи службу SSH если она выключена
  4. Нажми "Configure" или "Edit"
  5. Найди опцию "Allow Root Login" и установи в "Yes"
  6. Сохрани настройки и перезапусти SSH службу
config
# После включения через GUI можно подключиться:
ssh root@IP_адрес_TrueNAS
# Введите пароль администратора веб-интерфейса

Способ 2: Прямое подключение к консоли

Если у тебя есть физический или IPMI доступ к серверу:

bash
# На экране консоли TrueNAS:
1. Выбери вариант "Shell" из меню
2. Или нажми Enter при загрузке для доступа к командной строке
3. Ты уже в системе как root!
Внимание! В TrueNAS Core (FreeBSD) shell из меню дает доступ только к ограниченной оболочке. Для полного доступа нужно использовать метод с SSH.

Способ 3: Через Recovery Mode (Если забыт пароль)

Экстренный метод для сброса пароля root:

  1. Перезагрузи TrueNAS
  2. В меню загрузчика выбери "Boot Single User [Enter]"
  3. Система загрузится в однопользовательском режиме как root
  4. Смонтируй файловую систему: mount -uw /
  5. Сбрось пароль: passwd root
  6. Перезагрузись: reboot

Безопасная настройка root доступа

Открывать root доступ по SSH без дополнительной защиты — плохая идея. Давай настроим безопасность правильно.

Настройка SSH ключей вместо пароля

bash
# На твоем клиентском компьютере:
ssh-keygen -t ed25519 -f ~/.ssh/truenas_root_key

# Скопируй публичный ключ на TrueNAS:
ssh-copy-id -i ~/.ssh/truenas_root_key.pub root@IP_адрес_TrueNAS

# Теперь подключайся без пароля:
ssh -i ~/.ssh/truenas_root_key root@IP_адрес_TrueNAS

Ограничение доступа по IP

Отредактируй конфиг SSH на TrueNAS:

config
# Войди на TrueNAS и отредактируй:
nano /etc/ssh/sshd_config

# Добавь в конец файла:
AllowUsers root@192.168.1.100  # Только с этого IP
PermitRootLogin prohibit-password  # Только по ключу
PasswordAuthentication no  # Отключить пароли

# Перезапусти SSH:
systemctl restart sshd  # TrueNAS Scale
service sshd restart    # TrueNAS Core

Различия между TrueNAS Scale и Core

Поведение root отличается в зависимости от платформы:

Аспект TrueNAS Scale (Linux) TrueNAS Core (FreeBSD)
Shell по умолчанию Bash Csh / ограниченный shell
Менеджер служб systemctl service
Конфиг SSH /etc/ssh/sshd_config /etc/ssh/sshd_config
Сброс пароля Через однопользовательский режим Через загрузочное меню FreeBSD

Практические примеры использования root

Пример 1: Ручное редактирование конфигов

bash
# Редактирование сетевых настроек напрямую:
nano /etc/netplan/01-netcfg.yaml  # TrueNAS Scale

# Или в Core:
nano /etc/rc.conf

# После изменений:
netplan apply  # Scale
service netif restart  # Core

Пример 2: Диагностика проблем

bash
# Просмотр логов в реальном времени:
tail -f /var/log/messages
journalctl -f  # Scale

# Проверка состояния ZFS:
zpool status
zfs list

# Мониторинг ресурсов:
top
htop  # если установлен
zpool iostat -vl 1

Пример 3: Установка дополнительного ПО

bash
# В TrueNAS Scale (Debian-based):
apt update
apt install htop ncdu tmux

# В TrueNAS Core (FreeBSD):
pkg update
pkg install htop fusefs-curl

# Но помни: обновления через pkg/apt могут конфликтовать
# с обновлениями через веб-интерфейс TrueNAS!
Важное предупреждение: Установка пакетов через системный пакетный менеджер может сломать обновления TrueNAS. Используй только для диагностических утилит, которые не затрагивают систему.

Частые проблемы и решения

«Permission Denied» при подключении по SSH

Проверь цепочку:

  • Служба SSH включена в веб-интерфейсе
  • Разрешен root login в настройках SSH
  • Правильный пароль (пароль администратора веб-интерфейса)
  • Брандмауэр не блокирует порт 22
  • Права на ~/.ssh/authorized_keys: 600

Изменения не сохраняются после перезагрузки

TrueNAS использует overlay файловую систему. Для постоянных изменений:

bash
# В TrueNAS Scale создай скрипт в /etc/rc.local:
echo '#!/bin/bash
# Твои команды здесь' > /etc/rc.local
chmod +x /etc/rc.local

# В TrueNAS Core используй /etc/rc.local
# или настройки через /etc/rc.conf

Потеря доступа к веб-интерфейсу после правок

Восстанови конфигурацию middleware:

bash
# Перезапусти службы веб-интерфейса:
systemctl restart middlewared  # Scale
service middlewared restart    # Core

# Если не помогает, проверь логи:
journalctl -u middlewared -f

Лучшие практики работы с root

  • Используй sudo где возможно вместо постоянной работы под root
  • Веди журнал изменений — записывай все правки, которые делаешь вручную
  • Создай backup конфигов перед изменениями: cp файл файл.bak_дата
  • Используй screen или tmux для долгих операций
  • Отключай root доступ по SSH когда он не нужен
  • Настрой мониторинг попыток входа в систему
Профессиональный совет: Для регулярных задач создавай отдельного пользователя с sudo правами и используй его для повседневного доступа. Root оставь только для экстренных случаев и специфичных операций.

Альтернативы прямому root доступу

Использование API TrueNAS

Для автоматизации лучше использовать официальный API:

bash
# Пример через curl:
curl -X POST -H "Content-Type: application/json" \
  -u 'логин:пароль' \
  -d '{"service": "ssh", "enable": true}' \
  https://truenas/api/v2.0/service/start

Настройка sudo для администраторов

bash
# Создай пользователя:
useradd -m -G sudo adminuser
passwd adminuser

# Настрой sudoers (visudo):
adminuser ALL=(ALL) NOPASSWD: /sbin/zpool, /sbin/zfs
adminuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart ssh
Поделиться:
Сохранить гайд? В закладки браузера