web-dev-qa-db-fra.com

Gestion des autorisations de fichiers

J'aimerais pouvoir déplacer des fichiers téléchargés par transmission au nom de mon utilisateur principal.

J'ai ajouté cet utilisateur au groupe debian-transmission, mais cela ne suffit pas, seul le propriétaire a l'autorisation d'écriture sur les fichiers téléchargés.

Alors je vois quelques possibilités:

  • changer l'utilisateur de la transmission, mais cela ne semble pas être une bonne pratique.
  • définir une option dans la transmission pour lui permettre d'écrire un fichier avec des autorisations d'écriture pour le groupe, mais je ne sais pas si c'est possible.

Alors, quel est votre conseil pour aboutir à une bonne solution?

4
Gael

La solution proposée par @sverker est bonne, mais je vous suggère de modifier la configuration de la transmission afin qu'elle modifie le umask avec lequel sont écrits les fichiers téléchargés. La configuration est stockée dans

~/.config/transmission/settings.json

Recherchez et modifiez la valeur "umask". Notez que le format json utilise la notation décimale, jetez donc un coup d'œil au tableau et recherchez une valeur pour le nouvel umask (ex: 22).

Umask   Created Files       Created Directories
-------------------------------------------------------------
000     666 (rw-rw-rw-)     777     (rwxrwxrwx)
002     664 (rw-rw-r--)     775     (rwxrwxr-x)
022     644 (rw-r--r--)     755     (rwxr-xr-x)
027     640 (rw-r-----)     750     (rwxr-x---)
077     600 (rw-------)     700     (rwx------)
277     400 (r--------)     500     (r-x------)

puis dans un terminal:

#echo $((8#022)) 
18

Enfin changez la valeur umask à 18

12
LilloX

Transmission, au moins en tant que démon, a la possibilité d'exécuter un script à la fin d'un torrent. Vous devriez être capable de dire à ce script de chmod à 664 à la fin. À partir de là, les fichiers doivent être accessibles et accessibles en écriture à partir de votre utilisateur principal. Vous pouvez créer un script contenant ces lignes:

#!/usr/bin/env bash    
chmod -R 664 ${TR_TORRENT_DIR}
exit 0

Vous pouvez ensuite rendre ce script exécutable et le placer à un endroit où le démon de transmission peut y accéder, comme/usr/local/bin ou quelque chose d'autre.

Ensuite, vous indiquez à transmission-daemon de lancer le script à la fin du torrent. Vous pouvez le faire par interface graphique ou avoir cette ligne dans votre fichier /etc/transmission-daemon/settings.json:

"script-torrent-done-filename": "/usr/local/bin/your-script.sh", 

Et ça devrait être ça. Le concept du script-torrent-done est assez puissant, je l'utilise pour trier les torrents en films/musique/etc. en fonction de son contenu, mais c'est un script un peu plus long :)

1
sverker wahlin

Vous devriez lire sur ACL , cela vous permet d'ajouter des autorisations supplémentaires, comme l'ajout d'autorisations pour votre utilisateur principal.

par exemple Sudo setfacl -d -R u:gael:rw /home/transmission permet à votre utilisateur de lire et d’écrire dans ce répertoire. -d est par défaut , ce qui signifie que les fichiers créés dans ce répertoire auront ces nouvelles autorisations. Habituellement, vous utilisez -m au lieu de -d. Exécuter avec -m pour appliquer aux fichiers existants.

Vous pouvez créer un script pour exécuter la commande setfacl afin de vous assurer que tous les fichiers sont corrects, comme l'a suggéré Sverker;

0
Sir_Scofferoff