Zainstalowałem Transmission za pośrednictwem PPA, a demon uruchamia się podczas rozruchu. Chcę zmienić użytkownika, który uruchamia demona, ponieważ chcę, aby pobrane pliki były przypisane do tego samego użytkownika, co moja instalacja XBMC, i nie mogę znaleźć miejsca, w którym mogę to edytować.
Demon używa funkcji upstart, więc nie ma nic o tym, którzy użytkownicy go uruchamiają, /etc/init.d/transmission-daemon
ani nie ma nic w /etc/default/transmission-daemon
tym użytkowniku
Używam tych ppas do transmisji:
/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
źródło
źródło
Odpowiedzi:
Począwszy od wersji 1.4
setuid
isetgid
są obsługiwane natywnie w pliku konfiguracyjnym:i
Przed wersją 1.4 możesz użyć tego ( jak opisano tutaj ):
źródło
Ponieważ wszystkie pozostałe odpowiedzi dotyczą wstępnie Ubuntu, oto zaktualizowany przewodnik dla Ubuntu 16.04 ( z sensecodons.com ). Zasadniczo utwórz dodatkową jednostkę dla „transmission-daemon.service”, aby zmienić
User=...
ustawienie, a następnie zaktualizuj plik „~ / .config / Transmission-daemon / settings.json” tego użytkownika.Następnie będziesz chciał rozpocząć, a następnie zatrzymać transmisję, aby utworzyć
~/.config/transmission-daemon/
katalog dla nowego użytkownika.Odtąd powinieneś być w stanie
~/.config/transmission-daemon/settings.json
normalnie aktualizować .Po zakończeniu rozpocznij transmisję.
źródło
systemctl edit transmission-daemon.service
, który automatycznie 1. utworzy ten katalog i plik oraz 2. kiedy zapiszesz i zamkniesz, uruchomsystemctl daemon-reload
także.Założenia:
ppa:transmissionbt/ppa
some_user
i grupą:some_group
W przypadku systemu inicjującego System V (SysV) (np .: Ubuntu 10.04 LTS):
Zatrzymaj demona transmisji:
Edytuj skrypty init.d
... i zmień
USER=debian-transmission
naUSER=some_user
W przypadku systemu inicjującego Upstart (np .: Ubuntu 14.04 LTS):
Zatrzymaj demona transmisji:
Edytuj skrypty inicjujące:
... i edytuj w następujący sposób:
zmień
setuid debian-transmission
nasetuid some_user
i zmień
setgid debian-transmission
nasetgid some_group
W przypadku systemdowego systemu init (np .: Ubuntu 16.04 LTS):
Zatrzymaj demona transmisji:
Utwórz plik systemd override.conf:
... i edytuj w następujący sposób:
Uwagi:
Spowoduje to utworzenie następującego pliku:
/etc/systemd/system/transmission-daemon.service.d/override.conf
Puste przypisania zmiennych (np .
User=
:) są używane do kasowania / resetowania wartości w istniejącej zmiennej. Wygląda na to, że tak się dzieje w przypadku wymiany drop-up pliku systemowego. Patrz: „Przykład 2. Przesłanianie ustawień dostawcy” w podręczniku systemd.unit :Systemd ponownie ładuje i uruchamia demona transmisji:
Uwaga: W przeciwieństwie do systemów inicjujących Upstart i SysV, demon transmisji zapisuje całą konfigurację i ustawienia
/home/some_user/.config/transmission-daemon/
zamiast/etc/transmission-daemon/settings.json
i/var/lib/transmission-daemon
Uwagi i referencje
/etc/default/transmission-daemon
jest używany tylko przez skrypty Upstart (/etc/init.d/transmission-daemon
) i SysV (/etc/init/transmission-daemon.conf
), więc jeśli używasz systemu init Systemd, możesz zignorować wszystkie te pliki.Uruchamianie transmisji jako użytkownik w Ubuntu 16.04
Reddit: Zmiana użytkownika systemowego z zastępowaniem drop-in demona transmisji nie działa
Wymiana stosów: zmiana użytkownika systemowego z zastępowaniem drop-in demona transmisji nie działa
Opcjonalne / dodatkowe informacje dotyczące uprawnień i aktualizacji pakietów:
Zmiana uprawnień do plików konfiguracyjnych Transmission
Jeśli nie używasz systemowego systemu inicjującego, być może teraz będziesz musiał zmienić uprawnienia do plików konfiguracyjnych Transmission z
user=debian-transmission
douser=some_user
i odgroup=debian-transmission
dogroup=some_group
.Sprawdź lokalizację katalogu konfiguracji transmisji. Można go znaleźć w
/etc/default/transmission-daemon
pliku jako taką linię:Zakładając, że katalog konfiguracji to
/var/lib/transmission-daemon/info
: zmień własność plików konfiguracyjnych:Zmień własność innych plików:
Informacje dodatkowe (aktualizacja transmisji):
Ponieważ zmieniłeś domyślnego użytkownika, może się okazać, że po zaktualizowaniu Transmission przy użyciu repozytorium (np .: apt-get upgrade) demon transmisji już nie działa.
Uruchomienie „sudo apt-get -f install” powoduje następujący błąd:
Powodem, dla którego demon nie uruchamia się („invoke-rc.d: initscript-demon-transmisja, działanie„ start ”nie powiodło się.”), Ponieważ zmieniliśmy uprawnienia z „debian-transmisja” na „jakiś_użytkownik” i po aktualizacji zostały zresetowane . Aby to naprawić, wykonaj następujące czynności:
Zatrzymaj demona i edytuj plik konfiguracyjny:
... i zmień
USER=some_user
naUSER=debian-transmission
Ponownie spróbuj naprawić aktualizację, uruchamiając:
Jeśli aktualizacja się powiedzie, demon transmisji powinien teraz działać. Możesz teraz wykonać powyższe kroki, aby ponownie zmienić użytkownika / grupę.
źródło
To nie jest pełna historia. Oprócz zmiany
i
w
musisz także zmienić uprawnienia do pliku konfiguracyjnego demona transmisji. W przeciwnym razie nie będzie w stanie przepisać ustawień do tego pliku, a demon uruchomi się ponownie, dopóki upstart nie uzna, że ma wystarczającą szansę (init: demon transmisji odradza się zbyt szybko, zatrzymany)
źródło
settings.json
. Przegapiłem to.W systemach używających systemd plikiem, który chcesz edytować, może być:
/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
Kontynuuj edycję za pomocą:
sudo systemctl daemon-reload
źródło
W Ubuntu 16.04 usługa uruchamiania została zmieniona z upstart na systemd, dzięki czemu poprzednie odpowiedzi stały się nieaktualne. Aby zmienić użytkownika-demona transmisji, uruchom polecenie:
Zatrzymaj demona:
Zmień własność plików konfiguracyjnych i „home”:
Następnie edytuj plik za
/lib/systemd/system/transmission-daemon.service
pomocą:Uwaga
User
,--config-dir
i--log-debug
zmiany.Załaduj ponownie konfigurację systemową:
Uruchom ponownie demona:
Po ustawieniu opcji
--log-debug
(która zapewni więcej informacji na temat dowolnego problemu) możesz uzyskać dziennik demona:Gotowy.
Ważne uwagi:
Możesz zignorować pliki:
/etc/default/transmission-daemon
: Wygląda na to, że nikt nie pozyskuje go w systemach systemowych./etc/init.d/transmission-daemon
: Wygląda na to, że był to stary skrypt startowy systemu 5./etc/init/transmission-daemon.conf
: Wygląda na to, że jest to stary skrypt początkowy.źródło
/lib/systemd/system/transmission-daemon.service
ręcznie. Użyjsystemctl edit transmission-daemon.service
zamiast tego, w przeciwnym razie zmiany zostaną utracone podczas aktualizacji pakietu.Zrobiłem następujące, co wydaje mi się mniej inwazyjne niż inne odpowiedzi.
Usuń uruchomienie demona transmisji:
Dodaj następujące elementy
/etc/profile
:Utwórz
~/.autostart
:Być może jest to nieco bardziej przenośne, działa dla mnie na zwykłym Debianie i minibianie.
źródło
/etc/profile
(na przykład zsh go nie wykonuje)