X

Cómo cambiar el nombre de usuario de Transmission en linux

Si eres un fan de los torrents y te gusta trastear con equipos en linux o simplemente es tu sistema operativo base seguramente conocerás este gestor. Esta vez te quiero enseñar cómo cambiar el usuario de Transmission en linux.

En mi caso, y por si te sirve como idea, Transmission es el gestor de paquetes torrent que tengo instalado en una Raspberry Pi. De esta forma, puedes tener la carpeta compartida de forma remota por samba, y no es necesario que dejes tu equipo encendido siempre para que esté compartiendo o descargando tus archivos completamente legales.

Si tenemos en cuenta que una Raspberry conectada a una fuente de alimentación de pc con un disco duro consume en torno a los 12-15W, te darás cuenta en seguida de que es un ahorro sustancial a la opción de tener encendido tu equipo toda la noche. Además puedes acceder a los archivos desde cualquier equipo de la red.

Cómo cambiar el usuario de Transmission en cualquier linux

Ahora bien, cuando instalas Transmission, a la hora de ejecutarlo te habrás fijado en que el nombre de usuario que utiliza tanto para el proceso como para los archivos es debian-transmission.

Esto no tendría por qué ser un problema, siempre y cuando no interfiera con el usuario que solemos utilizar, por ejemplo para poder gestionar manualmente los archivos descargados o los permisos.

Para solucionar este problema, lo que podemos hacer es cambiar el nombre de usuario, de forma que transmission trabaje con el mismo usuario con el que tengamos acceso.

No es muy complicado, aunque deberemos tener varias cosas en consideración y modificar los permisos y contenido de varios archivos.

Cambiar el usuario de arranque de transmission

Lo primero será indicar a Transmission con qué usuario queremos que arranque. Doy por sentado que ya lo tienes instalado y funcionando, pero por si no es así será tan simple como ejecutar apt-get install transmission transmission-daemon.

Antes de nada debes saber que para poder modificar la configuración será necesario que cierres completamente transmission, puedes usar este comando:

service transmission-daemon stop

Asegúrate de que está detenido, puedes hacerlo con el comando ps de la siguiente forma:

ps aux |grep transmission

Si te aparece en la lista más de un registro (el primero será el comando de búsqueda ps) es que no se ha cerrado del todo, deberás copiar la id y hacer kill id. Ahora que ya está detenido sigamos.

Para cambiar el usuario editaremos el siguiente archivo:

nano /etc/init.d/transmission-daemon

En el archivo al principio tenemos que modificar la línea que indica USER cambiándola por el que queramos, por ejemplo:

USER=debian-transmission
por
USER=vichaunter

Voy a usar vichaunter como usuario en el resto de comandos, cámbialo por el que quieras utilizar tú. Supongo que tienes creado el usuario que vas a utilizar, sino con un simple useradd vichaunter lo crearás.

Con esto ya tendremos listo Transmission para que se ejecute con el nombre de usuario correcto la próxima vez que lo lancemos.

Cambiar la configuración interna de Transmission

Ahora falta arreglar un par de cosillas, ya que hay otor archivo que guarda la configuración del daemon de transmission. Para ello vas a reemplazar el contenido de este archivo:

nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

Con este otro:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=vichaunter
Type=forking
PIDFile=/var/lib/transmission-daemon/.config/transmission-daemon/trans.PID
ExecStart=/usr/bin/transmission-daemon --pid-file /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID --config-dir /var/lib/transmission-daemon/.config/transmission-daemon/

[Install]
WantedBy=multi-user.target

Recuerda borrar todo lo que hay dentro (ctrl+k borra la línea actual) y pegar la configuración que te acabo de dejar. Ojo, que tienes que cambiar el nombre de usuario por el tuyo.

Ahora ejecuta estos dos comandos:

touch /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID
chown vichaunter.vichaunter /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID

Arreglar permisos de archivos al cambiar el usuario a Transmission

Ahora te tocará solucionar el problema de permisos. Piensa que todos los archivos con los que se ha instalado transmission están configurados para funcionar con el usuario que tenía, por lo que tendremos que modificarlos para que se ejecute correctamente con el nuevo usuario.

Empezamos por cambiar el propietario de los archivos con estos comandos:

chown -R vichaunter.vichaunter /var/lib/transmission-daemon
chown -R vichaunter.vichaunter /etc/transmission-daemon/settings.json
chown -h vichaunter.vichaunter /var/lib/transmission-daemon/info/settings.json

Ahora que tenemos los usuarios correctos hay que cambiar el usuario de los archivos que tienes a medio descargar, para eso necesitas saber en qué carpeta se descargan, lo tienes en la configuración. Por ejemplo /media/torrent.

chown -R vichaunter.vichaunter /media/torrent/*

De esta forma cuando lo ejecutes continuará donde lo había dejado.

Solucionando algunos conflictos al ejecutar transmission

Puede que en algunos sistemas no llegue a ejecutarse tras estos pasos, indicando que no tiene permisos o permission denied. Para solucionarlo cambiaremos la restricción de los archivos a 777 según cual te de problemas. Lo normal es que sea la configuración:

chmod 777 /etc/transmission-daemon/settings.json
chmod 777 /var/lib/transmission-daemon/info/settings.json

Recuerda que esto también dependerá de donde tengas los archivos instalados, por si no los encuentras puedes usar el comando updatedb y luego locate transmission.

Si eres usuario de Debian (o raspbian que viene a ser lo mismo), tendrás que editar también otro archivo con el mismo nombre que has puesto arriba:

nano /lib/systemd/system/transmission-daemon.service

Simplemente en la línea User=debian-transmission pones vichaunter y guardas y cierras el archivo. Por último, antes de ejecutar transmission de nuevo deberás lanzar este comando para recargar la configuración del daemon:

systemctl daemon-reload

Lo que hace es regenerar el archivo /lib/systemd/system/transmission-daemon.service con el nuevo usuario (que si lo cambias a mano también te dará error)

Por fín basta con volver a ejecutar transmission:

/etc/init.d/transmission-daemon start

No te debería dar ningún error, pero de hacerlo puedes dejarme un comentario y te echo una mano.

Como solucionar 403 forbidden en transmission

Si al tratar de ejecutar transmission no te arranca, prueba a hacerlo de la siguiente manera:

transmission-daemon -f

Verás que te aparece en pantalla lo que está pasando en transmission, y puede que te salga algo como esto:

[2017-02-15 17:16:26.426 CET] UDP Failed to set receive buffer: requested 4194304, got 327680 (tr-udp.c:78)
[2017-02-15 17:16:26.426 CET] UDP Failed to set send buffer: requested 1048576, got 327680 (tr-udp.c:89)

Si es así, el problema está en el buffer  de entrada-salida del UDP y tendrás que modificarlo. Simplemente edita el archivo sysctl.conf y añade un par de líneas al final:

nano /etc/sysctl.conf

agrega esto

net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

Ahora falta que recargues las directivas con:

sysctl -p

Y al volver a ejecutar transmission-daemon ya verás que lo hace correctamente y puedes acceder vía web o con el GUI a través de la ip de tu servidor.

Igual te parece un tanto aparatoso todo el proceso, pero te puedo asegurar que son unas cuantas horas de investigación hasta dejarlo funcionando correctamente sin errores. No te quedes con dudas ante errores y comenta tu problema si no te funciona.

Como solucionar connection refused en transmission

A veces pasa que el proceso se bloquea o queda en defunct. Esto puede llevar a problemas de connection refused, pero no siempre es por el mismo motivo. Si te está pasando que tras configurarlo todo, de repente en algún momento te deja de ir, prueba con esto.

Elimina y vuelve a crear el archivo PID:

rm /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID
touch /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID
chown vichaunter.vichaunter /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID

Recuerda usar el usuario de transmission en el chown. También puede deberse a alguna configuración modificada después de haber ejecutado el servicio, por lo que te ha empezado a rechazar una vez se reinicia.

Para asegurarte mira que la línea rpc-bind-address de todos los archivos de configuración estén como esta:

"rpc-bind-address": "0.0.0.0",

Si has puesto tu ip por error ahí también te va a rechazar.

¿Has tenido algún problema con el cambio de usuario? ¿Qué otro gestor de torrents usas? Deja tu comentario y comparte.

VicHaunter:
    Categorías: Ayuda

Ver comentarios (1)

  • Gracias por el aviso, ya está corregido, simplemente faltaba el final de la cadena daemon/ (fallo mío al copiar desde putty).

Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.