J'ai installé Transmission via un PPA et le démon démarre au démarrage. Je veux changer l'utilisateur qui exécute le démon parce que je veux que les fichiers téléchargés soient sous le même utilisateur que mon installation XBMC, et je n'arrive pas à trouver où le modifier.
Le démon utilise upstart donc il n'y a rien sur les utilisateurs qui l'exécutent /etc/init.d/transmission-daemon
et il n'y a rien /etc/default/transmission-daemon
sur l'utilisateur non plus
J'utilise ces ppas pour la transmission:
/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list:deb //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main
/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list:deb-src //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main
/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list.save:deb //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main
/etc/apt/sources.list.d/transmissionbt-ppa-quantal.list.save:deb-src //ppa.launchpad.net/transmissionbt/ppa/ubuntu quantal main
services
upstart
transmission
BvdBijl
la source
la source
Réponses:
À partir de upstart v1.4,
setuid
etsetgid
sont pris en charge nativement dans le fichier de configuration:et
Avant la v1.4, vous pouvez utiliser ceci ( comme décrit ici ):
la source
Étant donné que toutes les autres réponses concernent Ubuntu pre-systemd, voici un guide mis à jour pour Ubuntu 16.04 ( de sensecodons.com ). Essentiellement, créez une unité supplémentaire pour "transmission-daemon.service" pour modifier le
User=...
paramètre, puis mettez à jour le fichier "~ / .config / transmission-daemon / settings.json" de cet utilisateur.Ensuite, vous voudrez démarrer puis arrêter la transmission pour lui faire créer le
~/.config/transmission-daemon/
répertoire de votre nouvel utilisateur.À partir d'ici, vous devriez pouvoir mettre à jour
~/.config/transmission-daemon/settings.json
normalement.Lorsque vous avez terminé, lancez la transmission.
la source
systemctl edit transmission-daemon.service
, qui 1. crée automatiquement ce répertoire et ce fichier, et 2. lorsque vous enregistrez et quittez, exécutezsystemctl daemon-reload
également.Hypothèses:
ppa:transmissionbt/ppa
some_user
et le groupe:some_group
Pour le système d'initialisation System V (SysV) (par exemple: Ubuntu 10.04 LTS):
Arrêtez le démon de transmission:
Modifiez les scripts init.d
... et passez
USER=debian-transmission
àUSER=some_user
Pour le système d'initialisation Upstart (par exemple: Ubuntu 14.04 LTS):
Arrêtez le démon de transmission:
Modifiez les scripts d'initialisation:
... et modifiez comme suit:
changer
setuid debian-transmission
poursetuid some_user
et changer
setgid debian-transmission
poursetgid some_group
Pour le système d'initialisation systemd (par exemple: Ubuntu 16.04 LTS):
Arrêtez le démon de transmission:
Créez le fichier override.conf de systemd:
... et modifiez comme suit:
Remarques:
Cela crée le fichier suivant:
/etc/systemd/system/transmission-daemon.service.d/override.conf
Les affectations de variables vides (par exemple:)
User=
sont utilisées pour effacer / réinitialiser la valeur dans la variable existante. Cela semble être la façon dont les choses sont faites lors de l'utilisation du remplacement direct du fichier d'unité systemd. Voir: "Exemple 2. Remplacement des paramètres du fournisseur" dans le manuel systemd.unit :Systemd recharger et démarrer la transmission démon:
Remarque: contrairement aux systèmes de démarrage Upstart et SysV, le démon de transmission enregistre toutes les configurations et tous les paramètres au
/home/some_user/.config/transmission-daemon/
lieu de/etc/transmission-daemon/settings.json
et/var/lib/transmission-daemon
Notes et références
/etc/default/transmission-daemon
est utilisé uniquement par les scripts Upstart (/etc/init.d/transmission-daemon
) et SysV (/etc/init/transmission-daemon.conf
) et donc si vous utilisez le système d'initialisation Systemd, vous pouvez ignorer tous ces fichiers.Exécution de la transmission en tant qu'utilisateur dans Ubuntu 16.04
Reddit: Changer l'utilisateur systemd avec un remplacement direct pour le démon de transmission ne fonctionne pas
Stack-Exchange: Changer l'utilisateur systemd avec le remplacement du démon de transmission ne fonctionne pas
Informations facultatives / supplémentaires concernant les autorisations et les mises à jour des packages:
Modification des autorisations sur les fichiers de configuration de Transmission
Si vous n'utilisez pas le système init systemd vous devrez peut - être maintenant modifier les autorisations pour les fichiers de configuration de transmission de
user=debian-transmission
lauser=some_user
et degroup=debian-transmission
lagroup=some_group
.Vérifiez l'emplacement de votre répertoire de configuration de transmission. Vous pouvez le trouver mentionné dans le
/etc/default/transmission-daemon
fichier sous la forme d'une ligne comme ceci:En supposant que votre répertoire de configuration soit
/var/lib/transmission-daemon/info
, changez la propriété des fichiers de configuration:Changer la propriété des autres fichiers:
Informations supplémentaires (mise à jour de la transmission):
Étant donné que vous avez modifié l'utilisateur par défaut, vous pouvez constater qu'après la mise à jour de Transmission à l'aide du référentiel (par exemple: apt-get upgrade), le démon de transmission ne fonctionne plus.
L'exécution de "sudo apt-get -f install" donne l'erreur suivante:
La raison pour laquelle le démon ne démarre pas ("invoke-rc.d: démon de transmission initscript, l'action" start "a échoué.") Est parce que nous avons changé les autorisations de "debian-transmission" en "some_user" et après la mise à jour, celles-ci ont été réinitialisées . Pour résoudre ce problème, procédez comme suit:
Arrêtez le démon et modifiez le fichier de configuration:
... et passez
USER=some_user
àUSER=debian-transmission
Réessayez de corriger la mise à jour en exécutant:
Si la mise à jour réussit, le démon de transmission devrait maintenant être en cours d'exécution. Vous pouvez maintenant suivre les étapes ci-dessus pour modifier à nouveau l'utilisateur / groupe.
la source
Ce n'est pas l'histoire complète. En plus de changer
et
dans
vous devez également modifier les autorisations du fichier de configuration de transmission-daemon. Sinon, il ne pourra pas réécrire les paramètres dans ce fichier et le démon redémarrera jusqu'à ce que le débutant pense qu'il a eu suffisamment de chances (init: transmission-daemon réapparition trop rapide, arrêté)
la source
settings.json
. Ça m'a manqué.Sur les systèmes utilisant systemd, le fichier que vous souhaitez modifier peut en fait être:
/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
Suivi de l'édition avec:
sudo systemctl daemon-reload
la source
Dans Ubuntu 16.04, le service de démarrage est passé de upstart à systemd, rendant obsolète le must des réponses précédentes. Pour modifier les exécutions du démon de transmission utilisateur, exécutez:
Arrêter le démon:
Changer la propriété des fichiers de configuration et "home":
Modifiez ensuite le fichier
/lib/systemd/system/transmission-daemon.service
avec:S'il vous plaît noter la
User
,--config-dir
et les--log-debug
changements.Recharger la configuration systemd:
Redémarrez le démon:
Une fois que vous avez défini l'
--log-debug
option (qui vous donnera plus d'informations sur tout problème), vous pouvez obtenir le journal du démon:Terminé.
A noter:
Vous pouvez ignorer les fichiers:
/etc/default/transmission-daemon
: Il semble que personne ne l'approvisionne dans les systèmes systemd./etc/init.d/transmission-daemon
: Il semble que ce soit l'ancien script de démarrage du système 5./etc/init/transmission-daemon.conf
: Il semble que ce soit l'ancien script de démarrage parvenu.la source
/lib/systemd/system/transmission-daemon.service
manuellement. Utilisez-le à lasystemctl edit transmission-daemon.service
place, sinon vos modifications seront perdues lors de la mise à niveau du package.J'ai fait ce qui suit, ce qui me semble moins invasif que les autres réponses.
Supprimez le démarrage de transmission-daemon:
Ajoutez ce qui suit à
/etc/profile
:Créer
~/.autostart
:C'est peut-être un peu plus portable, cela fonctionne aussi pour moi sur Debian ordinaire et sur minibian.
la source
/etc/profile
(zsh ne l'exécute pas, par exemple)