Пользователи
запланированоЗапланировано в WardPane 2.2. Этой возможности нет в текущей версии; страница описывает, как она должна работать. Планы
В WardPane 2.2 пользователи будут устроены как в ISPmanager. Люди входят в панель со своей учётной записью Linux на сервере, и каждый видит только свои сайты и те разделы, которые ему открыл root. На одном сервере можно держать сайты команды, клиентов или разных проектов, и чужих сайтов никто не увидит.
Вход
В панель входят с именем и паролем своей учётной записи в операционной системе сервера. Отдельного пароля от панели нет: сменили пароль на сервере, и он сменился для панели.
Сама панель никогда не работает от root и не может читать /etc/shadow. Пароли проверяет небольшой root-помощник через unix_chkpwd, ту же программу, что использует PAM, и пароли нигде не записываются и в журналы не попадают. После нескольких неверных паролей вход замедляется, а затем блокируется, с теми же ограничениями, что и при любом другом входе в панель (см. замечания о безопасности ниже).
Что видит пользователь
Обычный пользователь видит:
- сайты, которыми он владеет, и ничего из сайтов других пользователей;
- те разделы панели, к которым ему дал доступ root (права задаются root для каждого пользователя);
- свои базы данных и почту, если root это разрешает.
Новые пользователи начинают в простом режиме: дополнительные поля скрыты, настройки объяснены простыми словами. Любой пользователь может переключиться в экспертный режим, и сервер запомнит выбор.
Администраторы
Администраторы это root и участники группы sudo. Они видят все сайты и все разделы, управляют пользователями и их правами и меняют настройки панели.
Администратор может войти от имени пользователя, не зная его пароля. Панель тогда выглядит ровно так, как её видит этот пользователь, и с его сайтом проще помочь или проверить, что ему доступно.
Владельцы и сайты
Каждый сайт, созданный в 2.0, принадлежит владельцу, то есть пользователю Linux. Файлы сайта лежат в домашней папке владельца:
/var/www/<owner>/data/www/<domain>
По умолчанию владелец www-root, пользователь Linux, которого создаёт WardPane. Если вы на сервере один, все сайты могут принадлежать www-root. Root может создавать других владельцев и давать каждому свои сайты.
PHP и Node.js работают от имени владельца сайта, поэтому владелец может управлять файлами и приложениями своих сайтов из своего терминала (например, pm2 list и pm2 restart <domain> для приложений Node.js). См. Терминал в браузере и Node.js.
Сайты, созданные до 2.0
Сайты, созданные до 2.0 (включая сайты из Small Web Panel 1.x), сохраняют старую структуру в /var/www/<domain>, а их PHP работает от отдельного для каждого сайта пользователя Linux с именем wp_<id> и комментарием «WardPane site». Эти учётные записи служебные для WardPane, ни для чего другого их не используйте. В одном из следующих выпусков появится действие, которое переносит такие сайты на новую структуру по одному.
Аварийный вход
Кроме учётных записей сервера, у панели есть собственный вход из /opt/wardpane/.env (PANEL_USER и PANEL_PASSWORD). В 2.0 это обычный способ войти. С версии 2.2 он станет аварийным и по умолчанию будет выключен: он нужен на случай, когда вход с учётными записями сервера не работает.
Если доступа к панели нет, по SSH остаются такие инструменты:
sudo node /opt/wardpane/bin/unlock-login.js # немедленно снять все блокировки входа
sudo node /opt/wardpane/bin/unlock-login.js --reset-access # снова взять имя, пароль, PANEL_ALLOW_IPS и ROOT_LOGIN из .env
sudo systemctl restart wardpane
--reset-access удаляет эти значения из сохранённых настроек панели (предыдущий файл сохраняется как settings.json.before-reset-<time>), восстанавливает нечитаемый файл настроек и снимает блокировки входа. Для пароля в .env должен быть задан PANEL_PASSWORD. Можно сбросить только что-то одно, например --reset-access=allow-ips.
Замечания о безопасности
- Панель доступна из интернета, поэтому пароли сервера, с которыми можно в неё войти, должны быть длинными и случайными. Кроме того, доступ к панели можно ограничить по адресам через
PANEL_ALLOW_IPS(в Настройки > Доступ к панели или в.env), и с других адресов страницу входа даже не будет видно. - Попытки входа ограничены: по умолчанию адрес (для IPv6 его
/64) блокируется на 15 минут после 5 неудач, а волна неудач со многих адресов закрывает вход для адресов, которые раньше не входили. - Сессия в панели длится не больше 12 часов и завершается после 2 часов бездействия (
SESSION_HOURS,SESSION_IDLE_MINUTES).