Задача:


  1. Мини-офис (порядка 15 ± 5 пользователей)
  2. Нет администратора сети
  3. Нет общего файлового сервера
  4. Часть работников работает дома
  5. Основная масса компьютеров это Ubuntu, ну и другая ясно что.

И важно, чтобы у всех были следующие файловые ресурсы:
  1. DOCS входящие / исходящие / приказы и т.д.
  2. SALES промо / клиенты / продажи
  3. WORK проекты / работы
  4. FINS финансовые делишки
  5. HR кадровые
  6. TEMP помойка
  7. ZIP для схрона чего-то, но общего доступа

Если перед вами стоит такая задача, читайте дальше…

Из этого видно, что есть несколько групп пользователей. Кто-то имеет всё, кто-то эту часть, кто-то другую, и что-то пересекается.

Поиск решения


Решением этой задачи оказалось использование Synсthing (Thing (англ.) = вещица). Конечно, концепция общего хранения должна исходить от одного пользователя, да и доступ к информации у него полный. Конечно это не сильно продвинутый способ распределения прав доступа, но выкрутиться в небольшом коллективе с этим решением можно.

Почему Synсthing, а не BtSync или DropBox? DropBox был первым, когда нас было двое-трое, потом был BtSync, когда кто-то уходил пришлось перейти на Synсthing.

Для нас были очевидные положительные качества в пользу Synсthing.
качество syncthing btsync dropbox
открытый код да нет нет
цена бесплатно бесплатно (доп.опции платно) бесплатно 2Гб (больше — платно)
отключить пользователя можно нет можно
открытый код да нет нет
установка/настройка сложно/гибкие нормально/менее гибкие просто/ограниченно

Как сделать


Здесь, на хабре, есть статья как устанавливать и настраивать syncthing, но мы всё делали не совсем так, как там написано, но в общем похоже.

На Ubuntu ставим так


sudo apt-get install curl
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing-release.list
sudo apt-get update
sudo apt-get install syncthing

Чтобы запускался автоматом для одного пользователя %username% сделали файл:
sudo nano /etc/init/syncthing.conf

В него написали (%username% замените на его имя):
description "Syncthing P2P sync service"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
env STNORESTART=yes
env HOME=/home/%username%
setuid "%username%"
setgid "%username%"
exec /usr/bin/syncthing
respawn

На Windows так



Настройки


  1. Выбираем свой комп главным
  2. Управляем через веб-интерфейс по-умолчанию с адреса http://127.0.0.1:8384
  3. Устанавливаем на каждом компьютере Syncthing
  4. Чтобы управлять каждым компьютером с одного места, то у каждого в настройках в параметрах Адрес панели управления укажите 0.0.0.0:8384 и это позволит управлять по сетевому адресу компьютера (например: 192.168.1.2:8384)
  5. Устанавливаем имя админа и пароль
  6. Даём внятное Имя устройству, чтобы потом не путаться кто есть кто
  7. Сразу удаляем синхронизируемый ресурс, который по-умолчанию в Syncthing настроен
  8. саму папку Sync физически не удаляем, которая создана по-умолчанию при установке, а в ней и размещаем будущее каталогизированное хранилище (и это надо делать на каждом устройстве):
    • MYFIRM.DOCS
    • MYFIRM.SALES
    • MYFIRM.WORK
    • MYFIRM.FINS
    • MYFIRM.HR
    • MYFIRM.TEMP
    • MYFIRM.ZIP

  9. Теперь передайте на главный комп ID с каждого устройства и добавьте все Устройства на главном
  10. На главном открывайте настройки синхронизируемых ресурсов (папки) и в настройках отмечайте с каким устройством можно синхронизироваться

Итог


Ну всё, думаю, что этого короткого описания концепции и настройки общего файлового обмена/хранения достаточно.
  • Работает без проблем если имена файлов присваиваются по сокращённой схеме именования, то есть как на Windows (просто у Linux на файловой системе EXT4 больше возможностей именования файлов, но это не переваривает NTFS у Windows).
  • Клиенты Syncthing обновляются нормально и периодически.
  • Есть много интересных фишек, но это я буду расписывать если будет здоровый интерес у местной аудитории.

Ссылки по теме