Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Автостарт закачки transmission-daemon на сервере с помощью dropbox  (Прочитано 7492 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ShaitanX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Всем доброго дня)
Уважаемые ubunt`овцы, прошу помощи в организации цепочки, которая указана в теме.
В общем задача вот такая:
имеется небольшой домашний серверок, с ubuntu server 12.04 на борту. Захотелось сделать так, что бы транс мог подхватывать файлы *.torrent с папки дропбокса и начинать закачку файла.

Дальше попорядку:
-transmission установлен, конфиг настроен на забор файла в дропбоксе
-dropbox так же установлен, в нем выделена папка куда можно скидывать торрент-файлы. Папка дропбокса - в домашней директории юзера.

А дальше начинается конфликт прав - пользователь debian-transmission не имеет доступа к папке dropbox, а при переназначении прав на debian-transmission дропбок не может синхронизироватся, потому что служба дропа запускается под моим аккаунтом на серваке.
Попытка разрешить чтение/запись "для всех" на папку дропбокс то же не привела к успеху, ибо вновь созданные файлы дропбокс создает с правами чтение/запись для моего аккаунта, и не наследует права чтение/запись для всех.

Прошу совет, как правильно будет сделать linux-way, что бы данная связка заработала? НУ и о безопасности решений то же позаботится...
1. Можно запускать transmission под моим пользователем, но наверное это не есть гуд..
2. Можно ли сделать так, что бы новые файлы, которые синхронизируются ч/з дропбокс имели права по умолчанию "чтение/запись" для всех или наследовали их от папки в которой они хранятся?
3. Может проще вообще выделить отдельного юзера под это хозяйство и запускать и дроп и транс под этими пользователи?

Заранее спасибо за ответы, возможно кто-то уже сталкивался с такой проблемой, и поможет ее решить, ну или подскажет, как правильно в Ubuntu разграничить права и с точки зрения верной организации и с точки зрения безопасности.
« Последнее редактирование: 02 Мая 2012, 08:39:11 от ShaitanX »

Оффлайн ShaitanX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
возможно кто-то уже сталкивался с такой проблемой

Попробовал решить проблему самостоятельно и вот какой выход нашел.
Использовал промежуточный костыль incron (http://habrahabr.ru/post/66569/). Вся связка работает таким образом - *.torrent файл в любом месте скачивается в выделенную папку в Dropbox. Далее этот файл через облако попадает на машину-сервер. В incron создано задание, которое отслеживает изменение файловой системы в этой папке и при появлении нового файла запускает питоновский скрипт. Скрипт выполняет два действия:
1. Изменяет владельца:группу для *.torrent файла на debian-transmission
2. Перемещает эти файлы в специальную папку, на которую у демона трансмишена есть права.
Собственно все, немного длиновато получается, но судя по нескольким дням тестов - работет нормально.

Инструкция:
1. Ставим incron
sudo apt-get install incron2. В файл /etc/incron.allow добавляем пользователя, которому можно будет пользоваться сервисом. Я добавил root, что бы была возможность запускать скрипт и перемещать файлы в любую директорию.
3. Настраиваем задание в incron
sudo incrontab -eУ меня оно выглядит так:
/home/ваш юзер/Dropbox/Share_family/Torrents_Upload IN_MOVED_TO /home/ваш юзер/bin/drop_tr_uploads.py4. Создать и положить в /home/ваш юзер/bin/ скрипт drop_tr_uploads.py с содержанием:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import shutil
dir_watch = '/home/ваш юзер/Dropbox/Share_family/Torrents_Upload/'
dir_target = '/var/lib/transmission-daemon/dir_target/'
user_trans = 'debian-transmission'
group_trans = 'debian-transmission'
for fname in os.listdir(dir_watch):
     # перемещаем файлы в директорию dir_target
     os.system('chown ' + user_trans + ':'+ group_trans + ' ' + dir_watch+fname)
     shutil.move(dir_watch + fname, dir_target+fname)
5. Дать права на выполнение питоновского скрипта:
sudo chmod +x /home/ваш юзер/bin/drop_tr_uploads.py6. Создать папку (с правами 700) dir_target в /var/lib/transmission-daemon/, в которую скрипт будет перекидывать файлы торрент для трансмишена
7. Настроить конфиг трансмишена:
sudo nano /etc/transmission-daemon/settings.jsonдобавить или изменить параметры:
"watch-dir": "/var/lib/transmission-daemon/dir_target",
"watch-dir-enabled": true
8. Устновить дропбокс. Инструкций в сети много, можно воспользоваться этой: http://ubuntovod.ru/instructions/dropbox-ubuntu-server.html
9. Profit!)

Не претендую на правильность решения, просто показалась интересной именно эта задача. Возможно кому-либо поможет в таком же, или аналогичном случае. Вообще связка incron + dropbox довольно интересна и вполне может быть применена в самых разных лунапарках с блэкджеком и ... ну вы поняли))))
Главный для меня плюс - не нужно никого из близких обучать торрентам, веб-мордой трансмишена или упаси боже консоли) Сказал: "ТоррЕнт слить в общую папку дропбокса, через 20 минут забрать кино с сервака" и забыл - дальше все пользуются сами и довольно успешно)

P.S. Понятно, что все пути и структура файловой системы может менятся так, как угодно вам, только не забудьте поправить конфиги там, где это нужно. Тестил и теперь работает на Ubuntu Server 12.04
« Последнее редактирование: 09 Мая 2012, 01:00:12 от ShaitanX »

Оффлайн lawdt

  • Новичок
  • *
  • Сообщений: 1
  • Fresh Mint Breath
    • Просмотр профиля
Попробовал решить проблему самостоятельно и вот какой выход нашел.

Спасибо огромное, воспользовался вашим решением, все работает шикарно. не считаю это костылем, просто действительно либо разрешать дропбоксу и трансмишшну работать под одним пользователем, либо несекурно раздавать права.
haxxor

 

Страница сгенерирована за 0.046 секунд. Запросов: 25.