Instalei o Transmission através de um PPA e o daemon inicia na inicialização. Quero alterar o usuário que executa o daemon porque quero que os arquivos baixados tenham o mesmo usuário da minha instalação do XBMC e não consigo encontrar onde editá-lo.
O daemon usa upstart, portanto não há nada sobre quais usuários o executam /etc/init.d/transmission-daemon
e também não há nada /etc/default/transmission-daemon
sobre o usuário
Estou usando esses ppas para transmissão:
/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
fonte
fonte
Respostas:
A partir da versão inicial do v1.4,
setuid
esetgid
são suportados nativamente no arquivo de configuração:e
Antes da v1.4, você pode usar isso ( conforme descrito aqui ):
fonte
Como todas as outras respostas são para o pré-systemd do Ubuntu, aqui está um guia atualizado para o Ubuntu 16.04 ( de sensecodons.com ). Essencialmente, crie uma unidade suplementar para "conversion-daemon.service" para alterar a
User=...
configuração e atualize o arquivo "~ / .config / transmission-daemon / settings.json" desse usuário.Em seguida, você deseja iniciar e interromper a transmissão para criar o
~/.config/transmission-daemon/
diretório para o seu novo usuário.A partir daqui, você deve poder atualizar
~/.config/transmission-daemon/settings.json
normalmente.Quando terminar, inicie a transmissão.
fonte
systemctl edit transmission-daemon.service
1. que criará automaticamente esse diretório e arquivo e 2. quando você salvar e sair, executesystemctl daemon-reload
também.Premissas:
ppa:transmissionbt/ppa
some_user
e group:some_group
Para o sistema init do System V (SysV) (por exemplo: Ubuntu 10.04 LTS):
Pare o daemon de transmissão:
Edite os scripts init.d
... e mude
USER=debian-transmission
paraUSER=some_user
Para o sistema iniciante Upstart (por exemplo: Ubuntu 14.04 LTS):
Pare o daemon de transmissão:
Edite os scripts init:
... e edite da seguinte maneira:
mude
setuid debian-transmission
parasetuid some_user
e mude
setgid debian-transmission
parasetgid some_group
Para systemd init system (por exemplo: Ubuntu 16.04 LTS):
Pare o daemon de transmissão:
Crie o arquivo systemd override.conf:
... e edite da seguinte maneira:
Notas:
Isso cria o seguinte arquivo:
/etc/systemd/system/transmission-daemon.service.d/override.conf
As atribuições de variáveis vazias (por exemplo
User=
:) são usadas para limpar / redefinir o valor na variável existente. Parece ser assim que as coisas são feitas ao usar a substituição do arquivo da unidade systemd. Consulte: "Exemplo 2. Substituindo configurações do fornecedor" no manual systemd.unit :O Systemd recarrega e inicia o daemon de transmissão:
Nota: Ao contrário dos sistemas init Upstart e SysV, o transmission-daemon salva todas as configurações e configurações em
/home/some_user/.config/transmission-daemon/
vez de/etc/transmission-daemon/settings.json
e/var/lib/transmission-daemon
Notas e referências
/etc/default/transmission-daemon
é usado apenas pelos scripts Upstart (/etc/init.d/transmission-daemon
) e SysV (/etc/init/transmission-daemon.conf
) e, portanto, se você estiver usando o sistema Systemd init, poderá ignorar todos esses arquivos.Executando a transmissão como usuário no Ubuntu 16.04
Reddit: Mudando o usuário do systemd com o substituto do drop-in para o daemon de transmissão não funcionando
Stack-Exchange: Alterar usuário do systemd com substituição de drop-in para daemon de transmissão não funcionando
Informações opcionais / adicionais sobre permissões e atualizações de pacotes:
Alterando permissões nos arquivos de configuração da transmissão
Se você não estiver usando sistema de inicialização systemd agora você pode precisar alterar as permissões para os arquivos de configuração de transmissão a partir
user=debian-transmission
deuser=some_user
e paragroup=debian-transmission
agroup=some_group
.Verifique a localização do seu diretório de configuração de transmissão. Você pode encontrá-lo mencionado no
/etc/default/transmission-daemon
arquivo como uma linha assim:Portanto, supondo que seu diretório de configuração seja
/var/lib/transmission-daemon/info
, altere a propriedade dos arquivos de configuração:Alterar a propriedade de outros arquivos:
Informações adicionais (atualização da transmissão):
Como você alterou o usuário padrão, pode descobrir que após atualizar o Transmission usando o repositório (por exemplo: apt-get upgrade), o daemon de transmissão não está mais em execução.
A execução de "sudo apt-get -f install" fornece o seguinte erro:
O motivo pelo qual o daemon falha ao iniciar ("invoke-rc.d: daemon de transmissão initscript, ação" start "falhou.") É porque alteramos as permissões de "debian-transmission" para "some_user" e, após a atualização, elas foram redefinidas . Então, para corrigir, faça o seguinte:
Pare o Daemon e edite o arquivo de configuração:
... e mude
USER=some_user
paraUSER=debian-transmission
Tente corrigir a atualização executando:
Se a atualização for bem-sucedida, o daemon Transmission deve estar em execução. Agora você pode seguir as etapas acima para alterar o usuário / grupo novamente.
fonte
Esta não é a história completa. Além de mudar
e
no
você também precisa alterar as permissões do arquivo de configuração do daemon de transmissão. Caso contrário, ele não poderá reescrever as configurações deste arquivo e o daemon será reiniciado até que o iniciante pense que teve chances suficientes (init: daemon de transmissão reaparecendo muito rápido, parado)
fonte
settings.json
. Perdeu isso.Nos sistemas que usam systemd, o arquivo que você deseja editar pode ser:
/etc/systemd/system/multi-user.target.wants/transmission-daemon.service
Acompanhe a edição com:
sudo systemctl daemon-reload
fonte
No Ubuntu 16.04, o serviço de inicialização foi alterado de inicial para systemd, tornando obsoletas as respostas anteriores. Para alterar as execuções do daemon de transmissão do usuário, execute:
Pare daemon:
Altere a propriedade dos arquivos de configuração e "home":
Em seguida, edite o arquivo
/lib/systemd/system/transmission-daemon.service
com:Por favor, note o
User
,--config-dir
e as--log-debug
mudanças.Recarregar a configuração do systemd:
Inicie o daemon novamente:
Depois de definir a opção
--log-debug
(que fornecerá mais informações sobre qualquer problema), você poderá obter o log do daemon:Feito.
Coisas a serem observadas:
Você pode ignorar arquivos:
/etc/default/transmission-daemon
: Parece que ninguém o está fornecendo nos sistemas systemd./etc/init.d/transmission-daemon
: Parece que este era o antigo script de inicialização do sistema 5./etc/init/transmission-daemon.conf
: Parece que esse é o antigo script de inicialização inicial.fonte
/lib/systemd/system/transmission-daemon.service
manualmente. Use emsystemctl edit transmission-daemon.service
vez disso, ou suas alterações serão perdidas quando você atualizar o pacote.Fiz o seguinte, o que para mim parece menos invasivo do que as outras respostas.
Remova a inicialização do daemon de transmissão:
Adicione o seguinte a
/etc/profile
:Criar
~/.autostart
:Isso é um pouco mais portátil, talvez, também funcione para mim no Debian e no minibian.
fonte
/etc/profile
(zsh não executá-lo, por exemplo)