Bagaimana Anda menetapkan kata sandi untuk daemon transmisi, server klien BitTorrent?

58

File config bersifat ambigu, dan tetap ditimpa ketika Anda me-restart daemon di Debian.

Di /etc/transmission-daemon/settings.json, ada opsi ini:

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

Setiap kali saya me-restart daemon dengan:

/etc/init.d/transmission-daemon restart

Itu menimpa rpc-password, dan kata sandi yang dicetaknya tidak berfungsi.

Adakah yang tahu cara mengatur kata sandi dengan benar? Saya tidak ingin menonaktifkannya.

Neil
sumber
2
Hanya menempatkan ini di sini bagi siapa saja yang mungkin akan menemukan itu di masa depan, tetapi Anda juga harus set rpc-authentication-requiredke truedalam pengaturan file, jika tidak Transmission tidak akan memeriksa untuk password.
Robmathers
Saya melaporkan perilaku ini karena tidak konstruktif di bugs.launchpad.net/ubuntu/+source/transmission/+bug/1644091 , tetapi telah diabaikan karena banyak bug Ubuntu.
Karl Richter

Jawaban:

113

Lakukan hal-hal ini dalam urutan yang tepat:

  1. Shutdown: /etc/init.d/transmission-daemon berhenti
  2. Tulis rpc-passworddalam /etc/transmission-daemon/settings.jsonfile, dengan tanda kutip ganda.
  3. Simpan file itu
  4. Startup: /etc/init.d/transmission-daemon start
  5. Login ke halaman, itu di port 9091
  6. Ketikkan kata sandi Anda.

Kata sandi yang ditimpa adalah hash. Program ini lebih pintar dari biasanya dan mendeteksi bahwa kata sandi Anda bukan hash, sehingga menimpa kata sandi dengan hash agar aman. Jadi kata sandi Anda harus berfungsi.

Namun, ingatlah bahwa ia menulis kata sandi yang memuatnya ketika dimatikan. Jadi melakukan /etc/init.d/transmission-daemon restarttidak akan melakukan apa yang Anda harapkan jika Anda telah menulis file saat sedang berjalan.

Neil
sumber
9
Anda tidak harus berhenti dan mulai ulang daemon. Hanya /etc/init.d/transmission-daemon ulang.
brad
1
Paling tidak pada saat saya menulis jawabannya, Anda benar-benar mengedit file sementara itu dihentikan, karena transmisi-daemon menulis file di dekat.
Neil
1
init.d / reload khusus untuk distro. Secara umum, Anda hanya mengirim SIGHUP - meskipun ini TIDAK ada di halaman manual, hanya di sini: trac.transmissionbt.com/wiki/EditConfigFiles
yardena
Komentar dari pengguna anonim: Dalam kasus saya, ada skrip (di /etc/init.d) untuk meluncurkan daemon yang memberikannya kata sandi: Saya harus mengedit skrip itu (bernama "transmissiond") untuk mengubah kata sandi dan sebagainya itu berhasil.
terdon
Menimpa file konfigurasi dengan cara ini adalah pintar atau tidak, itu jelas merupakan sumber yang baik untuk masalah yang tidak perlu (dibandingkan dengan hanya memaksa pengguna untuk menulis hash di file konfigurasi dan memberikan umpan balik yang berguna di setiap level). Saya mencoba menjalankan transmisi selama beberapa tahun sekarang dan mendokumentasikan upaya tersebut. Biasanya bidang-bidang lain ditimpa juga. Saya mengajukan beberapa bug tentang hal itu yang telah diabaikan.
Karl Richter
2

Anda juga dapat mencoba solusi lain untuk menemukan kata sandi:

ps -ef | grep transmission

(untuk versi saya itu admin: kata sandi1)

phoenix
sumber
2
Setidaknya dalam instal ubuntu saya, kata sandi diatur dalam file sehingga daftar proses tidak akan memberi tahu Anda apa kata sandinya.
Damon Smith
2

Daemon biasanya menulis pengaturannya ketika keluar (atau dimulai ulang). Anda dapat memaksa daemon untuk memuat ulang pengaturan baru dengan mengirimkannya SIGHUP:

bunuh -HUP 1234

... maka itu tidak akan menimpa pengaturan Anda lagi saat berhenti.

BTW: Saya tidak senang transmisi-remote-cli ingin memiliki kata sandi di baris perintah. Ide buruk!

jm73
sumber
1

Walaupun postingan ini sudah memiliki jawaban yang diterima, saya merasa perlu menambahkan bahwa di Ubuntu, transmisi-daemon sebenarnya tidak dapat dihentikan begitu dimulai.

Ini berarti bahwa setiap perubahan yang Anda lakukan pada settings.json akan ditimpa pada restart berikutnya, setiap kali itu terjadi.

Ini juga berarti bahwa Anda harus sepenuhnya menonaktifkan daemon-startup saat boot , reboot, edit pengaturan Anda.json dan kemudian mengaktifkannya kembali untuk membuat perubahan yang Anda lakukan tetap ada.

Cukup menyebalkan, tetapi begitu Anda menyadari apa yang sedang terjadi, cukup mudah untuk mengatasinya.

Jostein Kjønigsen
sumber
4
Ketika Anda mengatakan tidak dapat dihentikan, apakah Anda mencoba menjalankan: "sudo service transmission-daemon stop"? untuk menghentikannya dengan cara biasa? Itu bekerja untuk saya. Kemudian Anda dapat mengedit file pengaturan dan memulai kembali.
Damon Smith
1
-1, Ini benar-benar salah. @Neil metode bekerja seperti yang dijelaskan dan jika apa yang Anda katakan itu benar metodenya tidak akan berfungsi. File settings.json hanya akan selesai jika Anda memodifikasinya saat transmisi sedang berjalan kemudian restart transmisi.
ubiquibacon
Jika Anda melakukan apa yang mayoritas pengguna jelas dengan init-background sysv-style tidak secara naluriah ( /etc/init.d/transmission restart) itu memang tidak bekerja. Jika Anda harus melakukan beberapa hal "layanan" aneh atau hal baru atau Ubuntu-isme khusus untuk membuatnya berfungsi, maka itu menurut definisi tidak berfungsi.
Jostein Kjønigsen
2
"Tidak berfungsi seperti biasa" tidak sama dengan "tidak bekerja". Berhasil.
suriv