Как стать автором
Обновить

Комментарии 54

Пользовался вашим менеджером по работе, когда нужно было выполнить кое-какие работы на сайте клиента, размещённом у вас, интерфейс и возможности приятно порадовали. Жму руку за смелый ход.
Спасибо, в планах выложить еще несколько проектов в OpenSource. Но не хватает времени и сил для приведения их в адекватный вид (чтобы ими могли пользоваться не только мы). В любом случае будем стараться. Хотим в течении нескольких лет прийти к тому, что бы выложить панель в OpenSource — но это очень долгосрочные планы.
Отличный продукт и очень удобный файл менеджер! Но я бы назвал это не файловым менеджером, это скорее что-то типа персонального файлового хранилища.

Не хотите продавать место, которое можно смонтировать к маку как дропбокс?
Мы думали сделать подобное в рамках виртуального хостинга. Можно и с fm интегрировать.
Хостинг — не интересно, а вот дешевый и быстрый а-ля яндекс диск, но с крутым ифейсом и возможностью сервис простенькие сайты — интересно.
Не успел написать. Согласен, если прикрутить панель со всеми возможностями хостинга — будет интересное решение.
и как всегда с дизайном у бегета всё отлично!
Молодцы, я с вами уже 5 лет!
Не выдержали хабраэффекта? Ай-ай, не солидно как для хостера :-)
А что не работает?
мм, сайт на момент написания комментария отдавал 400, а демо не работает до сих пор ;-)
как не странно, но у меня все работает =). Проверю с других браузеров/IP адресов.
Сайт открывает, но на демо видимо место закончилось
http://joxi.ru/82Q5vekI1poPo2
30 гигабайт для демо не хватило. в течении 2 минут увеличим до 200.
пс. зачем же в демо фильмы грузить...
Признаюсь, тоже приложил к этому руку — у вас нет защиты от рекурсивного копирования. Думаю, стоит предусмотреть, хотябы предупреждение выводить.
Как на счёт безопасности?
Возможен ли такой сценарий:
При открытом Sprut.io
На стороннем сайте запускается скрипт, и выполняется запрос к вашему сайту
https://demo.sprut.io:9443/actions/files/list
Со всеми вытекающими последствиями, от получения списка файлов, до их содержимого.
Если пользователь не авторизован — то он получит ответ HTTP Forbidden 403
Веб морда использует стандартный Tornado сервер

вот тут можно почитать про возможные настройки для безопасности
http://www.tornadoweb.org/en/stable/guide/security.html#authentication-and-security
спасибо!
Прикольно. Прельстил визуальный редактор, через mc не удобно большие конфиги править. Но на мой взгляд спрут слишком тяжел чтоб пользовать его как альтернативу mc.
ну скажем тут разные задачи.
mc вы запускаете из ssh консоли, а тут веб интерфейс к файлам, при этом ssh может быть выключен для пользователя и т.д.

Можно с любого пк зайти ничего не устанавливая и править конфиги :)
в чем рисовали картинки для статьи :)
Рисовал Dmeetry насколько я знаю в Photoshop.
А английского интерфейса нет что ли?
Файловый менеджер переведен на 3 языка — русский, английский, немецкий (файлы перевода можно посмотреть тут https://github.com/LTD-Beget/sprutio-frontend/tree/f05982acb03409a84146edec996ad4f50e3d1087/i18n)

В интерфейс переключение языков не выносили, так как у нас оно соответствует языку в панели управления. На текущий момент можно поменять язык в файле конфигурации https://github.com/LTD-Beget/sprutio/blob/master/app/config/settings.py

Переключение языков нужно добавить в интерфейс.
Спасибо.
Без докера совсем нельзя?
Постараюсь на следующей недели написать документацию как развернуть все окружение (вся информация есть в Dockerfile к каждому из компонентов).

Так же наш технический директор moosy обещал собрать deb пакетики.
Распаковка архивов штука такая… Вы от зип-бомб защиту сделали? Я вам ничего там не сломал сейчас?..
Плохая дырка в безопасности. Отписал пока в личку автору. Или к кому обращаться?
$ curl 'https://demo.sprut.io:9443/actions/files/list' -H 'Pragma: no-cache' -H 'Origin: demo.sprut.io:9443' -H 'Accept-Encoding: gzip, deflate' -H 'Accept: */*' -H 'Cache-Control: no-cache' -H 'X-Requested-With: XMLHttpRequest' -H 'Cookie: token=«2|1:0|10:1456523400|5:token|80:Rk06OnNlc3Npb246OmRlbW8xOTQ2MzgyNjo6NjdiZTAwMDAxYTdmM2YyYzY3Yjg5ZDFkM2VjMDAyZmQ=|5827658124228853f86b759f1e3b59768ada60a9621b50c8db4ee79b7e45eb11»; locale=«2|1:0|10:1456523400|6:locale|8:cnVfUlU=|c0f1da4bc4737680364be88cd51aa4f03edd6c39c091468de13c313719c01e27»' -H 'Connection: keep-alive' --data-binary '{«session»:{«host»:«localhost»,«type»:«home»},«path»:"../etc/"}' --compressed
{«error»: false, «traceback»: null, «message»: null, «data»: {«is_share_write»:

Если пользователь имеет права на чтение директорий или файлов — эти же директории или файлы можно прочитать из файлового менеджера. Пользователь должен иметь доступ к /etc (так же как и к /etc/passwd). В Sprut.IO надо в принципе убрать понятие домашнего FTP или добавить настройку которая позволяет/запрещает выход из домашней директории. Основное ограничение все таки это права пользователя в системе — остальное для удобства пользователя. В принципе это эквивалентно тому как если Вы зайдете по SSH на сервер.
Да, это я по привычке начал рассматривать сервис, как «публичный для многих». А это же менеджер только для своего сервера, где «все свои». Ок. Хотя, возможно, об этом стоит упомянуть, мало ли кто-то захочет сделать на его базе публичную «файловую помойку».
Я не очень понимаю о чем Вы говорите — на хостинге пользователи тоже могут смотреть /etc зайдя по SSH. На /etc стоят права 755 и это нормально для Linux (это права по умолчанию). А вот на homedir уже стоит 700 и зайти к нему в директорию Вы не сможете (если сам пользователь не поставит другие права).

Если Вы хотите, что бы пользователи не делали листинг файлов — ставьте права 711 на /etc. Но при 700 перестанет работать резолвер, определение логина, переменные окружения, профайлы и куча всего.
на хостинге пользователи тоже могут смотреть /etc зайдя по SSH

Файловый менеджер всё-таки уместнее сравнивать с SFTP, а он умеет chroot. Кстати, SSH тоже умеет, правда через создание jail. Мне кажется, полноценный chroot в Вашу схему будет внедрить не сложно.
Смотрите. Вот вы заустили демо. Там свободная регистрация юзера.
Если эти учетные записи также подразумевают доступ по ssh — тогда вопросов нет.
Но если посмотреть на ваш /etc/passwd :), то увидим, что у демо юзеров шелл выключен:

.../home/sprutio/fe/demo91784096:/bin/false\ndemo18227033:x:1433:1433::/home/sprutio/1f/demo18227033:/bin/false\n…

Значит доступ по ssh таки закрыт, и подразумевается доступ через вебку.
Штатные средства вебки не позволяют гулять по всей ФС и смотреть всё, до чего хватит прав доступа, верно? Однако, подменяя запросы, это можно легко делать: читать настройки в /etc, смотреть файлы в /tmp, где они часто доступны всем, прикинуть узнать версии ПО. Опять же, очень часто неподготовленные юзеры выставляют права доступа 777, чтобы «все работало». Не все знают тонкости работы даже базовых прав доступа в linux. Например, вы предложили выставить права 711. Однако, отсутствие Exec на каталоге запрещает только полный листинг, при том, что наличия R достаточно для того, чтобы получить список файлов/каталогов, хотя и без метаданных (прав доступа, размера, владельцев). Однако дальнейшим перебором можно нащупать объекты уже с 777.

Кратко, суть такая: подмена запросов к вебке открывает возможности (выход из home), которых нет в базовой функциональности.
Если это ваш сервер — ок, если вы открываете доступ через эту вебку кому-то другому — это, мне кажется, далеко не ОК.

В чем то Вы конечно правы. В любом случае как я уже писал Выше "надо добавить настройку которая позволяет/запрещает выход из домашней директории."
Штатные средства вебки не позволяют гулять по всей ФС и смотреть всё, до чего хватит прав доступа, верно?

на самом деле сейчас позволяют, текущая демка эквивалентна ssh доступу, только без выполнения shell команд

просто на некоторые папки запрещен листинг и без подмены запросов туда не попасть.

безусловно для безопасной многопользовательской работы необходимо понимать тонкости работы базовых прав доступа и грамотно настроить сервер. Тут вы совершенно правы.

думаю в ближайшее время мы реализуем возможность ограничивать учетные записи только домашней директорией.
также хотел заметить, одна из TODO — это добавить web терминал, который будет работать с правами пользователя. Но, в любом случае, будем рады, если присоединитесь к разработке и поможете нам сделать Sprut.IO лучше.
Демо опять не работает:
https://demo.sprut.io:9443/actions/files/list
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Сейчас ошибка сохраняется? Если да — то какой логин?
да, на эту папку запрещен листинг, но если вы нажмете иконку "Домашний FTP" то попадете в домашнюю папку аккаунта, там полный доступ.
Те то что ошибку можно посмотреть только в консоли — это нормально? (в интерфейсе вообще никакой реакции)
конечно нет — это исправим
О том, как он разрабатывался и почему нас не устроили существующие аналоги

Почему-то толком ничего про аналоги в статье как раз не увидел — кроме упоминания NetFTP и Cloud Commander — ответа на вопрос зачем делать еще один — нет.
В 2010 году мы не смогли найти двухпанельный web файловый менеджер, который нас так или иначе устраивал. Я не исключаю, возможно плохо искали. Единственно, что понравилось — это запуск web консоли и mc внутри, но это не совсем то, что нам было нужно. Перечислять аналоги NetFTP не вижу особого смысла.
Хочешь устроить бесплатное нагрузочное тестирование и тестирование безопасности? Вбрось ссылку на Хабру!

Почему кнопка обновления на лого РКН похожа, кстати?
На текущий момент около 1500 тестовых аккаунтов (за 2 дня). На хостинге в день до 1000 человек в FM заходят. По тестированию и безопасности сильно помогли, хорошая обратная связь. Спасибо !

Почему кнопка обновления на лого РКН похожа, кстати?

Не обращал на это внимание, но не думаю что РКН будет возражать =)
  1. Подразумевается ли возможность работы нескольких пользователей над одними файлами — папками? Или пока это все-таки обертка над ssh+mc для веб?
  2. Будет ли возможность сохранять историю изменения файла и кто это сделал? Слепками. Понятно, что это вносит увеличение расхода диска, но бывает удобно откатить, если кто-то что кривыми руками сделал. Ну и настраивать глубину этих слепков (это уже вторичные детали).
1) Нет подобной возможности нету. И если честно, мы даже над ней не думали.
2) Для данной задачи больше подходят систему управления версиями (в планах было добавить поддержку git), нежели файловый менеджер. Там где это необходимо можно будет контролировать изменение файлов через git.
Добрый день, коллеги.

напишу сюда новости по Sprut.IO:
  • наш файловый менеджер установил хостинг провайдер netangels.ru (https://www.netangels.ru/company/news/2016/fm/)
  • netangels.ru предоставил нам свои улучшения и на базе их мы добавили поддержку SFTP/SSH доступа
  • продумана и реализована система простой установки на любой хостинг — доступ к аккаунтам осуществляется через SSH/FTP
  • о нас написали статью в журнале LinuxFormat, с разрешения журнала публикую скрин статьи




Почти реализовали доступ по webdav и ssh терминал
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Сам менеджер работает идеально. Но отсутсвие обновлений в проекте вызывает настороженность...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий