Saya menginstal Transmisi melalui PPA dan daemon dimulai saat boot. Saya ingin mengubah pengguna yang menjalankan daemon karena saya ingin file yang diunduh berada di bawah pengguna yang sama dengan instalasi XBMC saya, dan sepertinya saya tidak dapat menemukan tempat untuk mengeditnya.
Daemon menggunakan pemula sehingga tidak ada tentang pengguna mana yang menjalankannya /etc/init.d/transmission-daemon
dan tidak ada apa-apa /etc/default/transmission-daemon
tentang pengguna juga
Saya menggunakan ppas ini untuk transmisi:
/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
sumber
sumber
Jawaban:
Mulai dari pemula v1.4,
setuid
dansetgid
didukung secara native dalam file konfigurasi:dan
Sebelum v1.4 Anda dapat menggunakan ini ( seperti dijelaskan di sini ):
sumber
Karena semua jawaban lain untuk Ubuntu pre-systemd, berikut ini panduan terbaru untuk Ubuntu 16.04 ( dari sensecodons.com ). Pada dasarnya, buat unit tambahan untuk "transmission-daemon.service" untuk mengubah
User=...
pengaturan dan kemudian perbarui file "~ / .config / transmission-daemon / settings.json" pengguna tersebut.Selanjutnya, Anda ingin memulai dan kemudian menghentikan transmisi untuk membuatnya membuat
~/.config/transmission-daemon/
direktori untuk pengguna baru Anda.Dari sini, Anda harus dapat memperbarui secara
~/.config/transmission-daemon/settings.json
normal.Setelah selesai, mulai transmisi.
sumber
systemctl edit transmission-daemon.service
, yang akan secara otomatis 1. membuat direktori dan file, dan 2. ketika Anda menyimpan dan keluar, berjalansystemctl daemon-reload
juga.Asumsi:
ppa:transmissionbt/ppa
some_user
dan grup:some_group
Untuk sistem init System V (SysV) (mis: Ubuntu 10.04 LTS):
Hentikan Daemon Transmisi:
Edit skrip init.d
... dan ubah
USER=debian-transmission
keUSER=some_user
Untuk sistem init pemula (mis .: Ubuntu 14.04 LTS):
Hentikan Daemon Transmisi:
Edit skrip init:
... dan edit sebagai berikut:
ubah
setuid debian-transmission
kesetuid some_user
dan ubah
setgid debian-transmission
kesetgid some_group
Untuk sistem init systemd (mis: Ubuntu 16.04 LTS):
Hentikan Daemon Transmisi:
Buat file systemride override.conf:
... dan edit sebagai berikut:
Catatan:
Ini menciptakan file berikut:
/etc/systemd/system/transmission-daemon.service.d/override.conf
Penugasan variabel kosong (misalnya:)
User=
digunakan untuk menghapus / mereset nilai dalam variabel yang ada. Ini tampaknya bagaimana hal-hal dilakukan ketika menggunakan penggantian drop-in dari file unit systemd. Lihat: "Contoh 2. Mengesampingkan pengaturan vendor" di manual systemd.unit :Systemd memuat ulang dan memulai daemon transmisi:
Catatan: Berbeda dengan Upit dan sistem init SysV, transmisi-daemon menyimpan semua konfigurasi dan pengaturan
/home/some_user/.config/transmission-daemon/
daripada/etc/transmission-daemon/settings.json
dan/var/lib/transmission-daemon
Catatan & Referensi
/etc/default/transmission-daemon
hanya digunakan oleh skrip Upstart (/etc/init.d/transmission-daemon
) dan skrip SysV (/etc/init/transmission-daemon.conf
) dan jadi jika Anda menggunakan sistem init Systemd maka Anda dapat mengabaikan semua file ini.Menjalankan transmisi sebagai pengguna di Ubuntu 16.04
Reddit: Mengubah pengguna systemd dengan penggantian drop-in untuk daemon transmisi tidak berfungsi
Stack-Exchange: Mengubah pengguna systemd dengan penggantian drop-in untuk daemon transmisi tidak berfungsi
Informasi Opsional / Tambahan mengenai izin dan pembaruan paket:
Mengubah Izin pada file konfigurasi Transmisi
Jika Anda tidak menggunakan sistem init systemd sekarang Anda mungkin perlu untuk mengubah hak akses untuk file konfigurasi Transmission dari
user=debian-transmission
keuser=some_user
dan darigroup=debian-transmission
kegroup=some_group
.Periksa lokasi Direktori Konfigurasi Transmisi Anda. Anda dapat menemukannya disebutkan dalam
/etc/default/transmission-daemon
file sebagai baris seperti:Jadi dengan asumsi Direktori Konfigurasi Anda
/var/lib/transmission-daemon/info
, ubah kepemilikan file konfigurasi:Ubah kepemilikan file lain:
Informasi Tambahan (memperbarui Transmisi):
Karena Anda mengubah pengguna default, Anda mungkin menemukan bahwa setelah memperbarui Transmisi menggunakan repositori (misalnya: apt-get upgrade) daemon transmisi tidak lagi berjalan.
Menjalankan "sudo apt-get -f install" memberikan kesalahan berikut:
Alasan daemon gagal dijalankan ("invoke-rc.d: initcript transmission-daemon, action" start "gagal.") Adalah karena kami mengubah izin dari "debian-transmission" menjadi "some_user" dan setelah pembaruan ini ulang . Jadi untuk memperbaikinya lakukan saja hal berikut:
Hentikan Daemon dan Edit file konfigurasi:
... dan ubah
USER=some_user
keUSER=debian-transmission
Coba ulang memperbaiki pembaruan dengan menjalankan:
Jika pembaruan berhasil, daemon Transmisi sekarang harus dijalankan. Anda sekarang dapat mengikuti langkah-langkah di atas untuk mengubah pengguna / grup lagi.
sumber
Ini bukan cerita lengkap. Selain berubah
dan
di
Anda juga perlu mengubah izin file konfigurasi daemon-transmisi. Kalau tidak, ia tidak akan dapat menulis ulang pengaturan untuk file ini dan daemon akan restart sampai pemula berpikir itu memiliki peluang yang cukup (init: transmisi-daemon respawning terlalu cepat, dihentikan)
sumber
settings.json
. Melewatkan itu.Pada sistem yang menggunakan systemd, file yang ingin Anda edit mungkin sebenarnya:
/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
Pengeditan lanjutan dengan:
sudo systemctl daemon-reload
sumber
Di Ubuntu 16.04, layanan startup diubah dari pemula menjadi systemd, membuat jawaban sebelumnya menjadi usang. Untuk mengubah transmisi-daemon yang dijalankan dijalankan:
Hentikan daemon:
Ubah kepemilikan file konfigurasi dan "home":
Kemudian edit file
/lib/systemd/system/transmission-daemon.service
dengan:Harap perhatikan
User
,--config-dir
dan--log-debug
perubahannya.Muat ulang konfigurasi systemd:
Mulai daemon lagi:
Setelah Anda mengatur opsi
--log-debug
(yang akan memberi Anda informasi lebih lanjut tentang masalah apa pun), Anda bisa mendapatkan log daemon:Selesai
Hal yang perlu diperhatikan:
Anda dapat mengabaikan file:
/etc/default/transmission-daemon
: Tampaknya tidak ada yang sumbernya dalam sistem systemd./etc/init.d/transmission-daemon
: Tampaknya ini adalah skrip start sistem 5 yang lama./etc/init/transmission-daemon.conf
: Tampaknya ini adalah skrip awal pemula yang baru.sumber
/lib/systemd/system/transmission-daemon.service
secara manual. Gunakansystemctl edit transmission-daemon.service
sebaliknya, atau perubahan Anda akan hilang saat Anda meningkatkan paket.Saya melakukan yang berikut, yang bagi saya tampaknya kurang invasif daripada jawaban lainnya.
Hapus startup-daemon transmisi:
Tambahkan yang berikut ke
/etc/profile
:Buat
~/.autostart
:Ini mungkin sedikit lebih portabel, ia bekerja untuk saya di Debian dan minibian juga.
sumber
/etc/profile
(zsh tidak menjalankannya, misalnya)