• Seedbox
  • Seebox multi utilisateurs ouverte

Bonjour,
je cherche un script de seedbox pour que tous les utilisateurs voient tous les torrents en cours et qu'ils voient aussi tous les fichiers dans le ftp.
Et si en plus tout le monde avait le droit de supprimer/déplacer ce serait top.

Avant je faisait ca avec TorrentFlux, mais c'est plus du tout mis a jours et pas compatible avec les magnet...
J'ai installé Bonobox mais chaque utilisateur est dans son répertoire et ne vois que ses DL.
Est-ce que ca existe une seedbox en mode cour des miracles ?
Merci

    guidouil
    Salut,
    Je pense que pour ce que tu cherches, il va te falloir mettre les mains dans le cambouis, un script pour ça, pas sur que ça existe....peu-être que je me trompe ??
    ☺

      ça revient à donner un seul compte à plusieurs utilisateurs non ? pourquoi ne pas faire ainsi ?

        bmth je ne veux pas cette situation ou on ne sait pas qui fais quoi mais je veux que tout le monde partage.

        jean-luc je crois que c'est ce que je vais devoir faire... Selon toi la meilleure base est quel script ?
        Je pense continuer avec bonobox et jouer avec les répertoires en lien symbolique, reste a voir comment hacker les droits des users ou alors les droit de groupe...

        Edit: j'ai essayé en mode gros bourrin en remplaçant le répertoire torrents d'un utilisateur par un lien symbolique et ca ne fonctionne pas. Je pense qu'il va falloir que je creuse la conf 🤔

          Bonjour en virant le chroot de tes users il pourront naviguer dans ton arborescence avec leur user perso mais tu ne protège plus rien y compris les répertoires système.

          En voilant des passkeys qui seront bien protégés 🙈

          guidouil

          J'ai déjà eu fait ce que tu voudrais, mais je ne m'en souviens que vaguement, je vais essayer de te donner les orientations dont je me souviens, ne m'en veut pas si ça ne fontionne pas au premier jet :!!!

          Pour commencer tu te réfères à ce topic:

          https://mondedie.fr/d/9655-tuto-installer-rutorrent-sur-debian-9-nginx-php-fpm

          Tu fais toute la partie installation tel-quel, puis

          créer un user unix "commun" par exemple et tous les dossiers nécessaires tel le tuto
          créer le fichier "/home/commun/.rtorrent.rc
          Modifier le scgi_port en 5001 par exemple
          + adapter les autres ligne à "commun"

          dans le fichier conf de nginx:

          location ^~ /rutorrent {
           ./...
          location /COMMUN {  ##ne pas répéter l'étape des users contrairement au tuto
                  include scgi_params;
                  scgi_pass 127.0.0.1:5001;
                  auth_basic "nginx";
                  auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";  ##générer autant de (login-passwords) que de clients
              }
          }
          

          Par contre ici, créer autant de dossiers que d'utilisateurs nginx (ceux pour qui tu as crée login et password):

          mkdir /var/www/rutorrent/conf/users/login1
          mkdir /var/www/rutorrent/conf/users/login2
          mkdir /var/www/rutorrent/conf/users/login3
          ./..etc
          

          Puis sur le même principe créer autant de fichiers "config.php" dans tous ces dossiers :

          nano /var/www/rutorrent/conf/users/login1/config.php
          nano /var/www/rutorrent/conf/users/login2/config.php
          nano /var/www/rutorrent/conf/users/login3/config.php
          ./...
          

          Y mettre ceci dans chaque fichier:

          <?php
          $pathToExternals['curl'] = '/usr/bin/curl';
          $topDirectory = '/home/commun/torrents'; #commun en minuscule
          $scgi_port = 5001;
          $scgi_host = '127.0.0.1';
          $XMLRPCMountPoint = '/COMMUN'; #respecter Majuscules
          

          Puis continuer le tuto avec plugin.ini tel quel ou adapter en fonction des plugins que tu désires avoir pour chaque utilisateur nginx, etc...

          Pour init.d utiliser l'username commun

          Ensuite:

          Créer autant d'utilisateurs unix que de login nginx sans créer de home en dur pour eux + créer un groupe "sftpusers" et rentrer chaque utilisateur dans ce groupe + commun crée précédemment.

          useradd -M -d /home/login1 -s /bin/rbash "login1"
          usermod -aG sftpusers,ftpusers login1
          ../..
          

          dans sshd_config (partie du tuto à modifier, sinon respecter le reste):

          Match Group sftpusers
          
          ChrootDirectory /home/commun/torrents
                   ForceCommand internal-sftp
                   AllowTcpForwarding no
                   GatewayPorts no
                   X11Forwarding no
          

          Pour le Ftp, avec Proftpd par exemple, tu chroot chaque utilistateur en modifiant le fichier conf:

          DefaultRoot			/home/commun/torrents
          ###puis à la fin:
          <Limit LOGIN>
              DenyGroup !sftpusers
          </Limit>
          

          Modifier les droits du dossier torrents (en plus d'avoir suivi le tuto avec "commun" comme username pour tous les autres dossiers de "commun":

          chown commun:sftpusers /home/commun/torents
          chmod 2755 /home/commun/torents
          

          Ensuite, avec "inotyfywait" (chercher un tuto); tu mets la surveillance sur /home/commun/torrents en récursif; avec comme évènement "IN_CLOSE_WRITE" pour exécuter ceci:

          chown -R commun:sftpusers /home/commun/torents/*
          chmod -R 755 /home/commun/torents/*
          

          J'espère n'avoir rien oublié....c'est vieux !!!
          🙂

          Edit: Pour inotify, regarde ici:
          http://kerlinux.org/2010/08/utilisation-de-inotifywait-dans-des-scripts-shell/
          Prendre le dernier exemple; puis modifier la partie la partie "on_event()" (dans le fichier bash "/usr/local/bin/inotifywait.sh" ) rendu exécutable et le chemin surveillé "/home/commun/torrents" à la place de /tmp :

          on_event() {
          chown -R commun:sftpusers /home/commun/torents/*
          chmod -R 755 /home/commun/torents/*
          ./.}
          

          Lancer ce fichier par systemd avec ce fichier:

          [Unit]
          Description=inotifywait.sh
          After=network.target
          
          [Service]
          ExecStart=/bin/bash /usr/local/bin/inotifywait.sh 
          PIDFile=/var/run/inotifywait.pid
          ExecStop=/bin/kill -9 $MAINPID
          Restart=always
          
          [Install]
          WantedBy=multi-user.target
          

          Whaou merci @jean-luc 🙂
          De mon coté j'ai pour l'instant un rutorrent avec tout le monde sur le même compte.
          Et je suis en train de coder ce que je veux vraiment
          https://github.com/guidouil/TorrentsDuck

          J'ai les torrents en multi user dans une interface web responsive et un mini accès aux fichiers téléchargés.
          Il me manque encore la création des utilisateurs pam pour vsftpd ou avoir un serveur ftp lié à mes comptes en Meteor

            guidouil Ah oui tu recrées un logiciel de torrent 😃

            Bravo et bon courage tu nous diras ce que ça donne.

            Répondre…