
В данной статье будет освещен вопрос, как сделать торрент-качалку Transmission мультипользовательской. То есть нам нужно, чтобы было несколько логинов/паролей, и у каждого пользователя был свой список загрузок и свои директории. Готового решения не нашел, поэтому придумал несколько извращенное решение этой задачи, чем и готов поделиться с вами. Кому интересно — добро пожаловать под кат!
Суть решения — запуск 2 (или более) процессов: один от root, другой от пользователя.
Пошаговый процесс установки и настройке на системе ArchLinux:
— Устанавливаем Transmission:
pacman -S transmission-cli
— Прописываем демон в автозагрузку:
nano /etc/rc.conf
Добавляем transmissiond в секцию DAEMONS
…
DAEMONS=(syslog-ng wicd crond rpcbind nfs-common nfs-server sshd samba transmissiond vsftpd)
— Редактируем настройки для Transmission, стартующей от root:
nano /root/.config/transmission-daemon/settings.json
Можно оставить дефолтный, чуть-чуть его подправив:
{
«alt-speed-down»: 500,
«alt-speed-enabled»: false,
«alt-speed-time-begin»: 540,
«alt-speed-time-day»: 127,
«alt-speed-time-enabled»: false,
«alt-speed-time-end»: 1020,
«alt-speed-up»: 500,
«bind-address-ipv4»: «0.0.0.0»,
«bind-address-ipv6»: "::",
«blocklist-enabled»: false,
«blocklist-url»: "",
«cache-size-mb»: 256,
«dht-enabled»: true,
«download-dir»: "/path/to/dir", — директория для готовых загрузок
«download-queue-enabled»: true,
«download-queue-size»: 5,
«encryption»: 1,
«idle-seeding-limit»: 30,
«idle-seeding-limit-enabled»: false,
«incomplete-dir»: "/path/to/dir", — директория для незавершенных загрузок
«incomplete-dir-enabled»: false,
«lazy-bitfield-enabled»: true,
«lpd-enabled»: true,
«message-level»: 2,
«open-file-limit»: 32,
«peer-congestion-algorithm»: "",
«peer-limit-global»: 450,
«peer-limit-per-torrent»: 80,
«peer-port»: 4320, — порт через который работаем
«peer-port-random-high»: 65535,
«peer-port-random-low»: 49152,
«peer-port-random-on-start»: false,
«peer-socket-tos»: «default»,
«pex-enabled»: true,
«port-forwarding-enabled»: true,
«preallocation»: 1,
«prefetch-enabled»: 1,
«queue-stalled-enabled»: true,
«queue-stalled-minutes»: 30,
«ratio-limit»: 2,
«ratio-limit-enabled»: false,
«rename-partial-files»: true,
«rpc-authentication-required»: true,
«rpc-bind-address»: «0.0.0.0»,
«rpc-enabled»: true, — включаем WebUI
«rpc-password»: «passwd2», — пароль для WebUI
«rpc-port»: 2708, — порт, на котором висит WebUI
«rpc-url»: "/transmission/",
«rpc-username»: «username1», - логин для WebUI
«rpc-whitelist»: "",
«rpc-whitelist-enabled»: false,
«scrape-paused-torrents-enabled»: true,
«script-torrent-done-enabled»: false,
«script-torrent-done-filename»: "",
«seed-queue-enabled»: false,
«seed-queue-size»: 10,
«speed-limit-down»: 100,
«speed-limit-down-enabled»: false,
«speed-limit-up»: 250,
«speed-limit-up-enabled»: false,
«start-added-torrents»: true,
«trash-original-torrent-files»: false,
«umask»: 0,
«upload-slots-per-torrent»: 14,
«utp-enabled»: true
}
— Копируем вышестоящий конфиг в /home пользователя
cp /root/.config/transmission-daemon/settings.json /home/username/.config/transmission-daemon/settings.json
— Изменяем в конфиге:
nano /home/username/.config/transmission-daemon/settings.json
«download-dir»: "/path/to/dir2", — директория для готовых загрузок 2
«incomplete-dir»: "/path/to/dir2", — директория для незавершенных загрузок 2
«peer-port»: 4321, — порт через который работаем (должен отличаться от порта из 1-го конфига)
«rpc-password»: «passwd2», — другой пароль для WebUI
«rpc-port»: 2709, — порт, на котором висит WebUI (должен отличаться от порта из 1-го конфига)
«rpc-username»: «username2», — другой логин для WebUI
— Ставим в автозагрузку от пользователя:
nano /etc/rc.local
Добавляем:
su - username -c "transmission-daemon &"
— Рестатруем
reboot
Итак, после перезагрузки мы имеем 2 запущенных процесса. Для входа в WebUI используем http://localhost:2708 (username1, passwd1) и http://localhost:2709 (username2, passwd2)
Спасибо за внимание!