Fidèle à Deluge depuis mon arrivé sur Linux, je commence à lui faire des infidélités avec Transmission pour des raisons de dépendances (transmission-daemon : 8110 kB / deluge-common deluged : 48.9 MB).

Sur mon Dockstar j’ai donc installé Transmission (je réaliserais un article complet bientôt).

Par défaut sous Debian, Transmission tourne avec le compte debian-transmission donc tous les fichiers téléchargés auront comme propriétaire ce compte ce qui peut poser des problème d’accès.

On peut palier à ce problème en jouant avec les groupes et les droits sur les fichiers / répertoires mais je préfère faire tourner Transmission avec mon utilisateur directement.

Ci-dessous le cheminement et les explications qui m’ont permis de trouver la configuration à appliquer, si vous voulez directement aller aux paramétrages, c’est ici que cela se passe.

 

Transmission est lancé (toujours sous Debian) via un script d’init qui contient le nom de l’utilisateur devant lancer le service :

cat /etc/init.d/transmission-daemon | grep 'USER'
debian-transmission

En première approche on se dit donc qu’il suffit de changer cette variable avec son utilisateur, mais en réalité ce n’est pas si simple car notre utilisateur n’a pas les droits d’accès sur le fichier de configuration de Transmission :

ls -l /etc/transmission-daemon/
 total 8,0K
 -rw-r--r-- 1 root                root                 302 18/10/2010 00:16 README.json
 -rw------- 1 debian-transmission debian-transmission 2,1K 15/05/2011 22:36 settings.json

On peut en 2ème pensée se dire que l’on change les droits sur ce fichier pour que son propriétaire soit notre utilisateur. Cela marcherait mais c’est crade…

Le plus élégant consiste à faire en sorte que Transmission utilise un autre fichier de configuration qui serait placé dans le HOME de notre utilisateur, d’autant que sur le Wiki de Transmission il est indiqué que le démon va lire sa configuration dans $HOME/.config/transmission-daemon

Tout d’abord pourquoi Transmission va lire sa configuration dans /etc/transmission-daemon/ ?

Si on lance htop, on constate que Transmission est lancé avec une option –config-dir :

/usr/bin/transmission-daemon --config-dir=/var/lib/transmission-daemon/info/

Si on va voir dans le répertoire sus-mentionné on constate alors que le fichier setting.json est un lien symbolique vers celui présent dans /etc/transmission-daemon/ :

ls -la /var/lib/transmission-daemon/info/
lrwxrwxrwx 1 root                root                  38 15/05/2011  22:19 settings.json -> /etc/transmission-daemon/settings.json

Voila pour le pourquoi, maintenant comment modifier ce comportement ?

Le script d’init étant bien fait il utilise un fichier default qui est inclus et qui défini une variable OPTIONS qui contient l’argument –config-dir.

Si on édite le fichier default de Transmission et que l’on supprime la variable OPTIONS, Transmission retrouvera son comportement par défaut et cherchera sa configuration d’abord dans le HOME de l’utilisateur puis ensuite dans /etc/transmission-daemon.

 

Donc pour changer l’utilisateur par défaut et « déplacer » son fichier de configuration voici les étapes du paramétrage.

Stopper Transmission :

sudo /etc/init.d/transmission-daemon stop

Éditer le fichier default du script d’init :

sudo vim /etc/default/transmission-daemon

Mettre la ligne OPTIONS en commentaire :

#OPTIONS="--config-dir $CONFIG_DIR"

Éditer le script d’init

sudo vim /etc/init.d/transmission-daemon

Changer l’utilisateur démarrant le service en modifiant la ligne USER :

USER=mon_utilisateur #debian-transmission

Copier le fichier de configuration vers le HOME de notre utilisateur (et mettre à jour les droits) :

mkdir -p $HOME/.config/transmission-daemon
sudo cp /etc/transmission-daemon/settings.json $HOME/.config/transmission-daemon/
sudo chown mon_utilisateur:mon_utilisateur $HOME/.config/transmission-daemon/ -R

Modifier éventuellement la configuration

Re-démarrer Transmission

sudo /etc/init.d/transmission-daemon start

 

Source :

Photo par Jesper2cv sous CC BY-ND

Les commentaires sont fermés.