Что такое root в TrueNAS и зачем он нужен?
Представь, что TrueNAS — это твой личный цифровой форт. Веб-интерфейс — это парадные ворота с охраной, где можно делать только разрешенные действия. А root — это тайный туннель, ведущий прямо в командный центр. Это учетная запись суперпользователя с неограниченными правами во всей системе.
Методы получения root доступа в TrueNAS
Давай разберем все рабочие способы, от самых простых до продвинутых. Выбор зависит от твоей версии TrueNAS и уровня доступа.
Способ 1: Через веб-интерфейс (Рекомендуемый)
TrueNAS Scale (на базе Linux) и Core (на базе FreeBSD) позволяют включить root доступ через настройки:
- Зайди в веб-интерфейс TrueNAS
- Перейди в System Settings → SSH (или Services → SSH в некоторых версиях)
- Включи службу SSH если она выключена
- Нажми "Configure" или "Edit"
- Найди опцию "Allow Root Login" и установи в "Yes"
- Сохрани настройки и перезапусти SSH службу
# После включения через GUI можно подключиться:
ssh root@IP_адрес_TrueNAS
# Введите пароль администратора веб-интерфейса
Способ 2: Прямое подключение к консоли
Если у тебя есть физический или IPMI доступ к серверу:
# На экране консоли TrueNAS:
1. Выбери вариант "Shell" из меню
2. Или нажми Enter при загрузке для доступа к командной строке
3. Ты уже в системе как root!
Способ 3: Через Recovery Mode (Если забыт пароль)
Экстренный метод для сброса пароля root:
- Перезагрузи TrueNAS
- В меню загрузчика выбери "Boot Single User [Enter]"
- Система загрузится в однопользовательском режиме как root
- Смонтируй файловую систему:
mount -uw / - Сбрось пароль:
passwd root - Перезагрузись:
reboot
Безопасная настройка root доступа
Открывать root доступ по SSH без дополнительной защиты — плохая идея. Давай настроим безопасность правильно.
Настройка SSH ключей вместо пароля
# На твоем клиентском компьютере:
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:
# Войди на 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: Ручное редактирование конфигов
# Редактирование сетевых настроек напрямую:
nano /etc/netplan/01-netcfg.yaml # TrueNAS Scale
# Или в Core:
nano /etc/rc.conf
# После изменений:
netplan apply # Scale
service netif restart # Core
Пример 2: Диагностика проблем
# Просмотр логов в реальном времени:
tail -f /var/log/messages
journalctl -f # Scale
# Проверка состояния ZFS:
zpool status
zfs list
# Мониторинг ресурсов:
top
htop # если установлен
zpool iostat -vl 1
Пример 3: Установка дополнительного ПО
# В TrueNAS Scale (Debian-based):
apt update
apt install htop ncdu tmux
# В TrueNAS Core (FreeBSD):
pkg update
pkg install htop fusefs-curl
# Но помни: обновления через pkg/apt могут конфликтовать
# с обновлениями через веб-интерфейс TrueNAS!
Частые проблемы и решения
«Permission Denied» при подключении по SSH
Проверь цепочку:
- Служба SSH включена в веб-интерфейсе
- Разрешен root login в настройках SSH
- Правильный пароль (пароль администратора веб-интерфейса)
- Брандмауэр не блокирует порт 22
- Права на ~/.ssh/authorized_keys: 600
Изменения не сохраняются после перезагрузки
TrueNAS использует overlay файловую систему. Для постоянных изменений:
# В 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:
# Перезапусти службы веб-интерфейса:
systemctl restart middlewared # Scale
service middlewared restart # Core
# Если не помогает, проверь логи:
journalctl -u middlewared -f
Лучшие практики работы с root
- Используй sudo где возможно вместо постоянной работы под root
- Веди журнал изменений — записывай все правки, которые делаешь вручную
- Создай backup конфигов перед изменениями:
cp файл файл.bak_дата - Используй screen или tmux для долгих операций
- Отключай root доступ по SSH когда он не нужен
- Настрой мониторинг попыток входа в систему
Альтернативы прямому root доступу
Использование API TrueNAS
Для автоматизации лучше использовать официальный API:
# Пример через curl:
curl -X POST -H "Content-Type: application/json" \
-u 'логин:пароль' \
-d '{"service": "ssh", "enable": true}' \
https://truenas/api/v2.0/service/start
Настройка sudo для администраторов
# Создай пользователя:
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