Permiso denegado al descargar con transmisión deamon

24

Instalé xubuntu y el demonio de transmisión, configuré la ruta de descarga para mi casa / usuario / programas de televisión y obtuve un permiso denegado al intentar descargar torrents a través de la transmisión.

Intenté chmod -r 777en esta carpeta sin éxito.

¡por favor ayuda!

salida de ps -ef | transmisión 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
fuente
¿Se puede agregar el resultado de ps -ef | grep transmissionla pregunta? No creo que el demonio de transmisión tenga el derecho de escribir en directorios de inicio por defecto.
mikewhatever
Lo agregué, ¿cómo agrego permisos a este usuario?
Chen Kinnrot el
Bueno, buscaba el nombre del usuario con el que se ejecuta, pero no se muestra. Intenta en su ps aux | grep transmissionlugar.
mikewhatever
Hm ..., parece que su nombre de usuario es 109, algo extraño.
mikewhatever
Esto es realmente extraño, pero debería estar ejecutándose debian-transmission, no estoy seguro de por qué muestra un número estúpido. Puedes verificar eso con id debian-transmission.
mikewhatever

Respuestas:

47

Suponiendo que la ruta a la carpeta de descarga es /home/chen/TV shows, ejecute lo siguiente:

  • agregar chen al grupo de transmisión de Debian

    sudo usermod -a -G debian-transmission chen
    
  • cambiar la propiedad de la carpeta

    sudo chgrp debian-transmission /home/chen/TV\ shows
    
  • conceder acceso de escritura al grupo

    sudo chmod 770 /home/chen/TV\ shows
    
  • Detén al demonio con

    sudo service transmission-daemon stop
    
  • Lo último que debe hacer es cambiar la máscara de creación de archivos, de modo que los archivos descargados puedan ser escritos por chen.

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

    ... y cambiar "umask": 18a "umask": 2. Presiona Ctrl+ Opara guardar y Ctrl+ Xpara salir.

Comienza el demonio con

sudo service transmission-daemon start
mikewhatever
fuente
En caso de que alguien intente cdingresar a su directorio justo después de hacer esto y reciba un permiso denegado, cierre la sesión y vuelva a iniciar sesión. Mi sesión SSH no tenía los permisos correctos para acceder a la carpeta después de que se le dio la propiedad de la carpeta al debian-tranmissiongrupo (ya que mi usuario no fue agregado a ese grupo hasta el próximo inicio de sesión)
matrixanomaly
Esto funciona hasta que necesito crear una nueva carpeta (por ejemplo, los archivos del torrent están anidados). Luego obtengo otro permiso denegado.
GDorn
@GDorn Ese no debería ser el caso. "umask": 2se traduce en permisos de 774, o rwxrwxr--, lo que significa acceso tonto para el propietario y el grupo.
mikewhatever
Respuesta útil, pero, tal vez, puedo sugerir una edición de la respuesta: tuve problemas con /var/lib/transmission-daemon/.config/transmission-demon/torrents. Este directorio no tenía permiso de escritura. Cambiándolos a todos declararon funcionar.
LPs
6

Este es un problema de permiso basado en la ID de usuario que ejecuta la transmisión. La transmisión configura un usuario predeterminado que podría no esperar en la primera instalación. El nombre del usuario esdebian-transmission .

Explicaré cómo cambiar eso:

  1. Detener el demonio de transmisión sudo service transmission-daemon stop
  2. Abra el archivo de configuración de Transmisión para editar: sudo nano /etc/init.d/transmission-daemon
  3. Encuentre la línea que dice USER=debian-transmissiony cámbiela al usuario que posee la carpeta en cuestión. Si no le preocupan los problemas de seguridad, también puede usarlo USER=rooten este archivo. (No recomendado, pero bueno para solucionar problemas).
  4. Alternativamente (en lugar del punto número 3), modifique la carpeta / etc / fstab para montar la carpeta con los permisos correctos para el usuario que ejecuta el demonio de transmisión.
  5. Inicia el demonio de transmisión sudo service transmission-daemon start
Terry
fuente
1
Eso no funcionará. Aquí, el usuario transmission-daemon o root también posee "/var/lib/transmission-daemon/info/settings.json" y si cambia el demonio para que se ejecute como $ USER, se le dará Couldn't read "/var/lib/transmission-daemon/info/settings.json": Permission denied. De alguna manera funcionó en su sistema, pero esta no es la forma correcta de hacerlo.
Khurshid Alam
Funciona, gracias. Y si su uso systemdse debe editar el Userbajo [Service]a /lib/systemd/system/transmission-daemon.service.
zer09
4

Compruebe si está utilizando una carpeta "incompleta". El error puede ser engañoso en este caso y puede ser la carpeta incompleta a la que no tiene acceso de escritura.

blockdor
fuente
2
ese fue mi caso: en la configuración tenía un caso incorrecto para el directorio incompleto. Entonces, el error fue doblemente engañoso: el error no estaba en el directorio que decía el error y el error debería haber sido "no encontrado" y no "permiso denegado"
Riccardo Cossu
2
Este fue mi problema! Se restableció a / root / incompleto, lo que obviamente no se puede escribir.
Pez Cuckow
1
Lo que dijo @RiccardoCossu. No puedo votar lo suficiente.
rocketboy
1

Esto me acaba de pasar. Encontré esta página, me sentí intimidado por toda la jerga, así que reinicié la transmisión, reservé el archivo de torrent en una ubicación diferente y guardé los datos de torrent en la misma ubicación diferente (escritorio). Trabajado como un encanto...

Alexia
fuente
0

Esto podría ser un problema de perfil de Aparmor. La transmisión corre bajo el sanitized_helperperfil en apparmor.

Busque quejas en /var/log/kern.log. grep transm /var/log/kern.log, especialmente justo después de intentar ejecutar la transmisión y falla.

Jim Salter
fuente
0

Dado que este es el principal resultado de búsqueda en Google, para cualquiera que lea esto, paso más de una hora intentando que funcione. Resulta que la carpeta de descargas especificada en settings.json es "Descargas" en lugar de "descargas". Tenga en cuenta el caso.

SomeGuest1425125125
fuente
0

En mi caso, el problema era cómo se montaba la unidad. Usar esto en /etc/fstabfuncionó para mí:

UUID=2069-1A05  /mnt/ext   vfat   rw,user,exec,umask=0000   0   0
davidcm
fuente
Un poco de contexto podría ayudar aquí ( vfat? No es un sistema de archivos Linux típico): ¿cuál era su escenario, qué no funcionaba exactamente y cómo lo solucionó?
Zanna
0

Montar la unidad externa en mi directorio de inicio resolvió este problema;

sudo mkdir / home / plex / media-server

sudo chmod 770 / home / plex / media-server

sudo mount / dev / sdxx / / home / plex / media-drive

Nota. sdxx es el nombre de su disco duro. puedes usar el siguiente comando para encontrar el tuyo;

sudo blkid

maestro liquido
fuente
-1

Tuve el mismo problema, y ​​ese fue un error que cometí al vincular sym el directorio de descarga de la transmisión a mi directorio home / user /, cambié la propiedad del archivo vinculado a sym que, en consecuencia, también cambió la propiedad de la transmisión ' descargar 'directorio ...

Acabo de regresar a la propiedad de 'Debian-Transmission' y funcionó de maravilla (sin necesidad de reiniciar el servicio)

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

(bueno, deberá verificar de acuerdo con su propia distribución de Linux cuál es el propietario correcto y, finalmente, también su ruta correcta al directorio de descargas)

baobab33
fuente
-1

Tuve un problema similar con la transmisión. Recibí un error de permiso al descargar incluso con la configuración correcta de permisos de carpeta en el disco duro USB externo.

Acabo de montar el HDD externo en el /home/pi/con los mismos permisos y funcionó bien.

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

permisos son drwxrwxrwx (0777) pi:debian-transmission. el nombre de usuario se cambia a pien /etc/init.d/transmisssion-daemon.

Akos
fuente