81

The config file is ambiguous, and keeps getting overwritten when you restart the daemon in Debian, anyway.

In /etc/transmission-daemon/settings.json, there are these options:

rpc-username
rpc-password
proxy-auth-username
proxy-auth-password

Every time I restart the daemon with:

/etc/init.d/transmission-daemon restart

It overwrites rpc-password, and the password it prints doesn't work anyway.

Does anyone know how to set the password properly? I don't want to disable it.

2
  • 2
    Just putting this here for anyone who might come across it in the future, but you also have to set rpc-authentication-required to true in the settings file, otherwise Transmission won't check for a password.
    – robmathers
    May 6, 2015 at 19:53
  • I reported this behaviour because it's non constructive at bugs.launchpad.net/ubuntu/+source/transmission/+bug/1644091, but it's been ignored as so many Ubuntu bugs. May 7, 2017 at 14:49

4 Answers 4

141

Do these things in the exact order:

  1. Shutdown: /etc/init.d/transmission-daemon stop
  2. Write the rpc-password in the /etc/transmission-daemon/settings.json file, in double-quotes. Make sure rpc-authentication-required is true.
  3. Save that file
  4. Startup: /etc/init.d/transmission-daemon start
  5. Login to the page, it's at port 9091
  6. Type in your password.

The password that's being overwritten is a hash. The program is smarter than usual and detects that your password is not a hash, so it overwrites the password with the hash to be secure. So your password should work.

However, remember that it writes the password it loaded with when it shuts down. So doing /etc/init.d/transmission-daemon restart will not do what you expect if you've written the file while it's running.

7
  • 9
    You don't have to stop and restart the daemon. Just /etc/init.d/transmission-daemon reload.
    – brad
    Sep 1, 2011 at 11:19
  • 3
    At least at the time I wrote the answer, you actually edit the file while it's stopped, because transmission-daemon writes the file on close.
    – Neil
    Sep 5, 2011 at 6:24
  • 1
    init.d/reload is distro-specific. More generally, you just send a SIGHUP - although this is NOT in the man page, only here: trac.transmissionbt.com/wiki/EditConfigFiles
    – yar
    May 14, 2012 at 17:21
  • Comment from an anonymous user: In my case, there was a script (in /etc/init.d) to launch the daemon that passed it the password: I had to edit that script (named "transmissiond") to change password and so it worked.
    – terdon
    Jun 9, 2013 at 14:07
  • Overwriting a configuration file in this way is either smart or not, it's definitely a good source for unnecessary trouble (in comparison to just forcing the user to write hashs in the configuration file and provide useful feedback on every level). I tried to get transmission running for some years now and documented the attempts. Usually other fields get overwritten as well. I filed some bugs about it which have been ignored. May 7, 2017 at 15:00
3

Genrally the daemon writes its settings when it exits (or is restarted). You can force the daemon to reload new settings by sending it SIGHUP:

kill -HUP 1234

...then it will not overwrite your settings anymore when stopping.

BTW: I'm not happy that transmission-remote-cli wants to have the password on the command line. Bad idea!

2

You can also try another solution to find the password:

ps -ef | grep transmission

(to my version it was admin:password1)

1
  • 2
    In my ubuntu install at least, the password is set in the file so listing the processes won't tell you what the password is. Oct 27, 2014 at 5:26
1

While this post already has an accepted answer, I find it worth adding that in Ubuntu the transmission-daemon is actually not stoppable once started.

This means that any changes you do to settings.json will get overwritten on next restart, whenever that is.

This also means that you have to completely disable daemon-startup on boot, reboot, edit your settings.json and then re-enabling it to make the changes you do persist.

Pretty annoying, but once you're aware of what's going on, it's fairly easy to cope.

4
  • 4
    When you say not stoppable, did you try running: "sudo service transmission-daemon stop" ? to stop it in the usual way? That works for me. Then you can edit the settings file and restart it. Oct 27, 2014 at 5:25
  • 1
    -1, This is just plain incorrect. @Neil method works as described and if what you said was true his method would not work. The settings.json file only gets over written if you modify it while transmission is running then restart transmission. May 4, 2015 at 19:28
  • If you do what the clear majority of users with a sysv-style init-background does instinctively ( /etc/init.d/transmission restart ) it does indeed not work. If you have to do some weird "service" thing or upstart-thing or another special Ubuntu-ism to make it work, then it by definition doesn't work. May 5, 2015 at 10:02
  • 2
    "Doesn't work the way I'm used to" is not the same as "doesn't work". It works.
    – suriv
    May 28, 2015 at 22:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .