Skip to content

📁 SFTP-сервер (демон)

📌 Описание

Встроенный SFTP-сервер с изоляцией по приложению: пользователь получает доступ к файлам конкретного приложения, а не всего сервера. Основа файлового менеджера в UI платформы и доступ для любых SFTP-клиентов (FileZilla, WinSCP).

🎯 Сценарии использования

  • 🖥️ Файловый менеджер в UI платформы (FE-008): просмотр, загрузка, редактирование файлов приложения.
  • 🔧 Разработчик подключается FileZilla к sftp://node:2022 с credentials, выданными платформой, и видит только каталог своего приложения.
  • 🎮 Геймдизайнер заливает моды на игровой сервер, не имея доступа к ОС.

🏗️ Техническое решение

  • Сервер: встроенный SSH/SFTP-субсистема на Rust (russh), отдельный порт (по умолчанию 2022), без системных пользователей ОС.
  • Изоляция: виртуальный chroot на каталог приложения (volumes для Docker, рабочий каталог для нативных); path traversal исключён на уровне резолвера путей.
  • Учётки: временные credentials/ключи выдаёт платформа с привязкой пользователь → приложение → права (ro/rw); TTL и ревокация.
  • Права: выдача SFTP-доступа — право apps.files (🔐 access-control).
  • Квоты и лимиты: ограничение размера загрузки, скорости — по тарифу/конфигу.
  • Аудит: лог сессий и операций записи.

🔗 Связанные задачи

DMN-010, FE-008 в ROADMAP.md.

Распространяется по лицензии MIT.