Permissão negada ao fazer o download com o deamon de transmissão

24

Instalei o xubuntu e o daemon de transmissão, defina o caminho do download para meus programas domésticos / de usuário / TV e receba uma permissão negada ao tentar baixar torrents através da transmissão.

Eu tentei chmod -r 777nesta pasta sem sucesso.

por favor ajude!

saída de ps -ef | transmissão grep

chen@htpc:~$ ps -ef | grep transmission
109       1023     1  1 21:46 ?        00:00:35 /usr/bin/transmission-daemon --config-dir /var/lib/transmission-daemon/info

chen@htpc:~$ ps aux | grep transmission
109       1023  3.2  0.4  47684 16620 ?        Ssl  21:46   1:20     /usr/bin/transmission-daemon --config-dir /var/lib/transmission-daemon/info
chen      1852  0.0  0.0   4200   772 pts/0    S+   22:27   0:00 grep --color=auto transmission

enter code here
Chen Kinnrot
fonte
Você pode adicionar a saída de ps -ef | grep transmissionpara a pergunta. Eu não acho que o daemon de transmissão tenha o direito de gravar em diretórios pessoais por padrão.
Mikewhatever
Eu adicionei, como adiciono permissões a este usuário?
Chen Kinnrot 23/11/2012
Bem, eu estava atrás do nome do usuário sob o qual ele é executado, mas não é mostrado. Tente em ps aux | grep transmissionvez disso.
mikewhatever
Hm ..., parece com o nome de usuário 109 - meio estranho.
Mikewhatever
Isso é realmente bizarro, mas deve estar rodando abaixo debian-transmission, sem saber por que mostra um número estúpido. Você pode verificar isso com id debian-transmission.
Mikewhatever 23/11/2012

Respostas:

47

Supondo que o caminho para a pasta de download seja /home/chen/TV shows, execute o seguinte:

  • adicione chen ao grupo de transmissão debian

    sudo usermod -a -G debian-transmission chen
    
  • alterar a propriedade da pasta

    sudo chgrp debian-transmission /home/chen/TV\ shows
    
  • conceder acesso de gravação ao grupo

    sudo chmod 770 /home/chen/TV\ shows
    
  • Pare o daemon com

    sudo service transmission-daemon stop
    
  • A última coisa a fazer é alterar a máscara de criação de arquivo, para que os arquivos baixados sejam graváveis ​​pelo chen.

    sudo nano /etc/transmission-daemon/settings.json
    

    ... e mude "umask": 18para "umask": 2. Pressione Ctrl+ Opara salvar e Ctrl+ Xpara sair.

Inicie o daemon com

sudo service transmission-daemon start
mikewhatever
fonte
Caso alguém tente cdentrar no diretório imediatamente após fazer isso e receber uma permissão negada, efetue logout e login novamente. Minha sessão SSH não tem as permissões adequadas para acessar a pasta após a posse pasta foi dado ao debian-tranmissiongrupo (uma vez que o meu usuário não foi adicionado a esse grupo até o próximo logon)
matrixanomaly
Isso funciona até que eu precise criar uma nova pasta (por exemplo, os arquivos do torrent estão aninhados). Então, recebo outra permissão negada.
GDorn 21/03
@GDorn Esse não deveria ser o caso. "umask": 2traduz para permissões de 774, ou rwxrwxr--, o que significa acesso tolo para proprietário e grupo.
precisa saber é o seguinte
Resposta útil, mas, talvez, eu possa sugerir uma edição para a resposta: tive problemas /var/lib/transmission-daemon/.config/transmission-demon/torrents. Este diretório não tinha permissão de gravação. Mudando todos eles declarados para o trabalho.
LPs
6

Esse é um problema de permissão com base no ID do usuário que está executando a Transmissão. A transmissão configura um usuário padrão que você não pode esperar na primeira instalação. O nome de usuário é debian-transmission.

Vou explicar como mudar isso:

  1. Pare o daemon de transmissão sudo service transmission-daemon stop
  2. Abra o arquivo de configuração da transmissão para edição: sudo nano /etc/init.d/transmission-daemon
  3. Encontre a linha que diz USER=debian-transmissione altere-a para o usuário que possui a pasta em questão. Se você não estiver preocupado com problemas de segurança, também poderá usar USER=rootneste arquivo. (Não recomendado, mas bom para solucionar problemas).
  4. Como alternativa (em vez do ponto número 3), modifique a pasta / etc / fstab para montá-la com as permissões corretas para o usuário que executa o daemon de transmissão.
  5. Inicie o daemon de transmissão sudo service transmission-daemon start
Terry
fonte
1
Isso não vai funcionar. Aqui, o usuário transmission-daemon ou root também possui "/var/lib/transmission-daemon/info/settings.json" e se você alterar o daemon para rodar como $ USER, ele fornecerá Couldn't read "/var/lib/transmission-daemon/info/settings.json": Permission denied. De alguma forma, funcionou no seu sistema, mas essa não é a maneira correta de fazer isso.
Khurshid Alam
Funciona, obrigado. E se systemdvocê estiver usando , edite o Useritem abaixo [Service]em /lib/systemd/system/transmission-daemon.service.
zer09 23/11
4

Verifique se você está usando uma pasta "incompleta". O erro pode ser enganoso nesse caso e pode ser a pasta incompleta à qual você não tem acesso de gravação.

blockdor
fonte
2
esse foi o meu caso: nas configurações, eu tinha um caso errado para o diretório incompleto. Assim, o erro foi duplamente enganosa: o erro foi não no diretório o erro estava dizendo e o erro deveria ter sido "não encontrado" e não "permissão negada"
Riccardo Cossu
2
Este foi o meu problema! Foi redefinido para / root / incompleto, o que obviamente não é gravável!
Pez Cuckow
1
O que o @RiccardoCossu disse. Não é possível votar o suficiente.
Rocketboy #
1

Isto somente aconteceu para mim. Encontrei esta página, fiquei intimidado com todo o jargão, então reiniciei a Transmission, reservei o arquivo torrent para um local diferente e salvei os dados do torrent no mesmo local (desktop). Trabalhou como um encanto ...

Alexia
fonte
0

Isso pode ser um problema no perfil do apparmor. A transmissão é executada sob o sanitized_helperperfil em apparmor.

Procure reclamações em /var/log/kern.log. grep transm /var/log/kern.log, principalmente logo após tentar executar a transmissão e falhar.

Jim Salter
fonte
0

Como esse é o principal resultado de pesquisa do Google, para quem lê isso, passo mais de uma hora tentando fazê-lo funcionar. Acontece que a pasta de downloads especificada em settings.json é "Downloads" em vez de "downloads". Observe o caso.

SomeGuest1425125125
fonte
0

No meu caso, o problema era como a unidade estava sendo montada. Usando isso /etc/fstabfuncionou para mim:

UUID=2069-1A05  /mnt/ext   vfat   rw,user,exec,umask=0000   0   0
davidcm
fonte
Um pouco de contexto pode ajudar aqui ( vfat? Não é um sistema de arquivos Linux típico) - qual era o seu cenário, o que exatamente não estava funcionando e como isso foi corrigido?
Zanna
0

A montagem da unidade externa no meu diretório pessoal resolveu esse problema;

sudo mkdir / home / plex / servidor de mídia

sudo chmod 770 / home / plex / servidor de mídia

sudo mount / dev / sdxx / / home / plex / unidade de mídia

Nota. sdxx é o nome do seu disco rígido. você pode usar o seguinte comando para encontrar o seu;

sudo blkid

liquidbender
fonte
-1

Eu tive o mesmo problema e foi um erro que cometi ao vincular o diretório de download de transmissão ao meu diretório home / usuário / sym, alterei a propriedade do arquivo vinculado pelo sym, que por consequência também alterou a propriedade da transmissão ' diretório de download '...

Acabei de retroceder à propriedade 'debian-transmission' e funcionou como um encanto (sem necessidade de reiniciar o serviço)

#chown debian-transmission:debian-transmission /var/lib/transmission/downloads

(bem, você terá que verificar de acordo com sua própria distribuição linux qual é o proprietário certo e, eventualmente, também o caminho certo para o diretório de downloads)

baobab33
fonte
-1

Eu tive um problema semelhante com a transmissão. Eu obtive um erro de permissão durante o download, mesmo com as configurações corretas de permissão de pasta no disco rígido externo USB.

Acabei de montar o disco rígido externo /home/pi/com as mesmas permissões e funcionou bem.

mount /dev/sda /home/pi/USB-HDD-MOUNTED

permissões são drwxrwxrwx (0777) pi:debian-transmission. nome de usuário alterado para piin /etc/init.d/transmisssion-daemon.

Akos
fonte