Ich habe Transmission über eine PPA installiert und der Daemon startet beim Booten. Ich möchte den Benutzer ändern, der den Dämon ausführt, da die heruntergeladenen Dateien unter demselben Benutzer wie meine XBMC-Installation sein sollen, und ich kann anscheinend nicht finden, wo ich das bearbeiten kann.
Der Daemon verwendet upstart, sodass nichts darüber bekannt ist, in welchen Benutzern er ausgeführt wird, /etc/init.d/transmission-daemon
und auch nichts /etc/default/transmission-daemon
über den Benutzer
Ich verwende diese ppas für die Übertragung:
/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
quelle
quelle
Antworten:
Ab Upstart v1.4
setuid
undsetgid
werden nativ in der Konfigurationsdatei unterstützt:und
Vor v1.4 können Sie dies verwenden ( wie hier beschrieben ):
quelle
Da alle anderen Antworten für Ubuntu pre-systemd gelten, finden Sie hier eine aktualisierte Anleitung für Ubuntu 16.04 ( von sensecodons.com ). Erstellen Sie im Wesentlichen eine zusätzliche Einheit für "Transmission-Daemon.service", um die
User=...
Einstellung zu ändern , und aktualisieren Sie dann die Datei "~ / .config / Transmission-Daemon / settings.json" des Benutzers.Als Nächstes möchten Sie die Übertragung starten und dann stoppen, damit das
~/.config/transmission-daemon/
Verzeichnis für Ihren neuen Benutzer erstellt wird.Von hier aus sollten Sie in der Lage sein,
~/.config/transmission-daemon/settings.json
normal zu aktualisieren .Wenn Sie fertig sind, starten Sie die Übertragung.
quelle
systemctl edit transmission-daemon.service
, wodurch automatisch 1. dieses Verzeichnis und diese Datei erstellt und 2. beim Speichern und Beenden ebenfalls ausgeführt wirdsystemctl daemon-reload
.Annahmen:
ppa:transmissionbt/ppa
some_user
und Gruppe ausführen :some_group
Für System V (SysV) -Init-System (z. B. Ubuntu 10.04 LTS):
Stoppen Sie den Übertragungsdämon:
Bearbeiten Sie die Skripte init.d
... und wechseln
USER=debian-transmission
zuUSER=some_user
Für Upstart-Init-System (zB: Ubuntu 14.04 LTS):
Stoppen Sie den Übertragungsdämon:
Bearbeiten Sie die Init-Skripte:
... und wie folgt bearbeiten:
wechseln
setuid debian-transmission
zusetuid some_user
und wechseln
setgid debian-transmission
zusetgid some_group
Für systemd init system (zB: Ubuntu 16.04 LTS):
Stoppen Sie den Übertragungsdämon:
Erstellen Sie die Datei systemd override.conf:
... und wie folgt bearbeiten:
Anmerkungen:
Dadurch wird die folgende Datei erstellt:
/etc/systemd/system/transmission-daemon.service.d/override.conf
Die leeren Variablenzuweisungen (zB :)
User=
werden verwendet, um den Wert in der vorhandenen Variablen zu löschen / zurückzusetzen. Dies scheint der Fall zu sein, wenn die systemd-Einheitendatei durch Drop-In ersetzt wird. Siehe: "Beispiel 2. Überschreiben der Herstellereinstellungen" im Handbuch systemd.unit :Systemd lädt den Übertragungsdämon neu und startet ihn:
Hinweis: Im Gegensatz zu Upstart- und SysV-Init-Systemen speichert der Transmission-Daemon alle Konfigurationen und Einstellungen
/home/some_user/.config/transmission-daemon/
anstelle von/etc/transmission-daemon/settings.json
und/var/lib/transmission-daemon
Anmerkungen & Referenzen
/etc/default/transmission-daemon
wird nur von den Upstart-Skripten (/etc/init.d/transmission-daemon
) und SysV-Skripten (/etc/init/transmission-daemon.conf
) verwendet. Wenn Sie also das Systemd-Init-System verwenden, können Sie alle diese Dateien ignorieren.Ausführen der Übertragung als Benutzer in Ubuntu 16.04
Reddit: Ändern des systemd-Benutzers mit Drop-In-Ersatz für Übertragungsdämon funktioniert nicht
Stack-Exchange: Ändern des systemd-Benutzers mit Drop-In-Ersatz für den Übertragungsdämon funktioniert nicht
Optionale / zusätzliche Informationen zu Berechtigungen und Paketaktualisierungen:
Ändern der Berechtigungen für die Konfigurationsdateien von Transmission
Wenn Sie nicht systemd Init - System verwenden , können Sie jetzt brauchen , um die Berechtigungen für die Übertragung der Konfigurationsdateien von Änderungen
user=debian-transmission
zuuser=some_user
und vongroup=debian-transmission
zugroup=some_group
.Überprüfen Sie den Speicherort Ihres Übertragungskonfigurationsverzeichnisses. Sie finden es in der
/etc/default/transmission-daemon
Datei als Zeile wie folgt erwähnt:Angenommen, Ihr Konfigurationsverzeichnis lautet
/var/lib/transmission-daemon/info
: Ändern Sie den Besitz von Konfigurationsdateien:Ändern Sie den Besitz anderer Dateien:
Zusätzliche Informationen (Aktualisierung der Übertragung):
Da Sie den Standardbenutzer geändert haben, wird der Übertragungsdämon nach dem Aktualisieren von Transmission mithilfe des Repositorys (z. B. apt-get upgrade) möglicherweise nicht mehr ausgeführt.
Wenn Sie "sudo apt-get -f install" ausführen, wird der folgende Fehler angezeigt:
Der Grund, warum der Daemon nicht gestartet werden kann ("invoke-rc.d: Initscript Transmission-Daemon, Aktion" Start "fehlgeschlagen."), Ist, dass wir die Berechtigungen von "Debian-Transmission" in "some_user" geändert haben und diese nach dem Update zurückgesetzt wurden . Um dies zu beheben, gehen Sie einfach wie folgt vor:
Stoppen Sie Daemon und bearbeiten Sie die Konfigurationsdatei:
... und wechseln
USER=some_user
zuUSER=debian-transmission
Versuchen Sie erneut, das Update zu reparieren, indem Sie Folgendes ausführen:
Wenn das Update erfolgreich ist, sollte der Übertragungsdämon jetzt ausgeführt werden. Sie können jetzt die obigen Schritte ausführen, um Benutzer / Gruppe erneut zu ändern.
quelle
Dies ist nicht die vollständige Geschichte. Abgesehen von Änderungen
und
im
Sie müssen auch die Berechtigungen der Konfigurationsdatei von Transmission-Daemon ändern. Andernfalls können die Einstellungen für diese Datei nicht neu geschrieben werden, und der Dämon wird neu gestartet, bis Upstart glaubt, dass er genügend Chancen hat (init: Übertragungsdämon wird zu schnell wieder gestartet, gestoppt).
quelle
settings.json
. Hab das verpasst.Auf Systemen, die systemd verwenden, lautet die Datei, die Sie bearbeiten möchten, möglicherweise tatsächlich:
/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
Nachbearbeitung mit:
sudo systemctl daemon-reload
quelle
In Ubuntu 16.04 wurde der Startdienst von upstart auf systemd geändert, sodass die vorherigen Antworten veraltet sein müssen. So ändern Sie die Ausführung des Benutzerübertragungsdämons:
Daemon stoppen:
Ändern Sie den Besitz von Konfigurationsdateien und "home":
Dann bearbeiten Sie die Datei
/lib/systemd/system/transmission-daemon.service
mit:Bitte beachten Sie die
User
,--config-dir
und die--log-debug
Änderungen.Systemkonfiguration neu laden:
Starten Sie den Daemon erneut:
Nachdem Sie die
--log-debug
Option (mit der Sie weitere Informationen zu Problemen erhalten) festgelegt haben, können Sie das Protokoll des Dämons abrufen:Getan.
Dinge zu beachten:
Sie können Dateien ignorieren:
/etc/default/transmission-daemon
: Es scheint, dass niemand es in systemd-Systemen bezieht./etc/init.d/transmission-daemon
: Es scheint, dass dies das alte System 5-Startskript war./etc/init/transmission-daemon.conf
: Es scheint, dass dies das alte Startskript ist.quelle
/lib/systemd/system/transmission-daemon.service
manuell bearbeiten . Verwenden Siesystemctl edit transmission-daemon.service
stattdessen, oder Ihre Änderungen gehen verloren, wenn Sie das Paket aktualisieren.Ich habe Folgendes getan, was mir weniger invasiv erscheint als die anderen Antworten.
Entfernen Sie den Start von Transmission-Daemon:
Fügen Sie Folgendes hinzu zu
/etc/profile
:Erstellen
~/.autostart
:Dies ist vielleicht etwas portabler, es funktioniert für mich auch auf einfachem Debian und Minibian.
quelle
/etc/profile