Problema permisos contenedores docker (abc / 911)
#1
Buenas,
como consecuencia (una más) de deshabilitar el usuario "admin", siguiendo las recomendaciones de QNAP, me encuentro con un problemilla que de momento no puedo solucionar. No es nada grave, pero sí algo molesto. Antes de deshabilitar el "admin" montaba los samba con dicho usuario y lógicamente, no tenía ningún problema  Blush

Tengo un contenedor docker para Deluge (descargas torrent), que generé descargando una imagen pre-configurada de docker y no con comandos desde la consola del NAS. Se me están generando los ficheros/directorios de las descargas con el usuario con UID=911 y permisos 755 para directorios y 644 para ficheros (la máscara por defecto "022"), en la carpeta compartida "Download". Hasta ahí todo correcto.

La interfaz web de Deluge tiene opción de eliminar el torrent, bien dejando lo descargado, o bien eliminando también lo descargado. Si elijo eliminar el torrent eliminando también lo descargado, el contenedor lo elimina completamente. El problema viene cuando por el contrario decido eliminar el torrent, pero dejar todo lo descargado intacto, porque quiero dejar de compartirlo y lo quiero mover a la carpeta multimedia. Entonces me es imposible eliminar el fichero o moverlo a otra ubicación (permiso denegado) si me encuentro accediendo desde mi Linux por samba. Si lo intento eliminar/mover desde FileStation también falla (aunque no da ningún error).

Al final, la única manera que encuentro es habilitar ssh en el NAS y mediante sudo (osea, elevándome a "admin") eliminar/mover el directorio. Ni siquiera con otro usuario administrador puedo por el mismo problema de permisos  Angry

En un sistema Linux/UNIX normal, ajustar la máscara de creación de ficheros/directorios resolvería el problema. Por ejemplo, con la máscara "000" se generarían ficheros con 666 y directorios con 777. Es poco elegante e inseguro, pero efectivo.

He entrado en la consola del contenedor Deluge (basado en Alpine Linux 3.8) y he modificado el umask tanto en /etc/profile general y también he generado un ~/.profile para el usuario concreto que genera los ficheros de descarga. Si genero yo los ficheros/directorios desde la consola del contenedor, se generan según lo esperado: usuario "abc", con uid 911, ficheros 666 y directorios 777. Pero cuando se añaden torrents a Deluge se sigue utilizando la máscara estándar, por lo que sigo con el mismo problema.

He estado googleando y mirando en el foro de qnap y parece ser algo propio de docker. En caso de haber generado el contenedor mediante docker file parece fácil cambiar el umask pero no encuentro la manera de hacerlo en mi caso (ya que no encuentro dónde puede estar el dockerfile embebido o si podría modificarlo).
¿Alguien con más experiencia en contenedores se le ocurre cómo modificar la máscara de manera efectiva?  Angel

Gracias
TS-253A 2x4TB RAID1 8GB RAM
“La inteligencia es la habilidad de evitar hacer trabajo y conseguir que el trabajo se haga.” (Linus Torvalds)
  Responder
#2
Hola

¿Puedes poner como has generado el
Docker? En algunos se indican permisos y usuarios ?

Otra opción a probar sería, eliminar ese docker, desactivar admin y generarlo de nuevo para ver si lo hace con permisos del nuevo usuario administrador ?
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#3
Lo generé únicamente descargando la imagen pre-configurada de docker para Deluge desde el propio ContainerStation (todo por QTS, nada de terminal) y sólo indiqué el mapeo de volumen para la carpeta compartida de las descargas y el puerto (NAT) para poder conectar al WebUI. Seguramente en ese momento también se podría haber indicado algo más, por las variables de entorno, entrypoint, etc.

El caso es que encontrado la manera de hacerlo funcionar de una manera efectiva aunque seguramente no la más elegante ni más pro, desde la terminal del propio contenedor, aunque no es tocando el umask. Durante la secuencia de arranque del contenedor en ContainerStation veo su salida de consola. Ahí he visto los scripts que se ejecutan al inicio para generar el usuario, permisos iniciales, etc con los que funciona el proceso de deluge. He modificado las variables del UID y el GID y he puesto los mismos que los del usuario del NAS que utilizo para montar la carpeta compartida mediante Samba. Con esto ya tengo permisos de propietario y problema resuelto  Cool


Código:
root@Deluge:/etc/cont-init.d$ cat 10-adduser
#!/usr/bin/with-contenv bash

PUID=${PUID:-1003}  <================
PGID=${PGID:-0}     <================

groupmod -o -g "$PGID" abc
usermod -o -u "$PUID" abc

chown abc:abc /app
chown abc:abc /config
chown abc:abc /defaults


Archivos adjuntos Imagen(es)
   
TS-253A 2x4TB RAID1 8GB RAM
“La inteligencia es la habilidad de evitar hacer trabajo y conseguir que el trabajo se haga.” (Linus Torvalds)
  Responder
#4
Hola
Por eso te preguntaba por la cadena de instalación/arranque del docker.
En algunos se pueden indicar esos parámetros de inicio, en el que le damos los de un usuario con permisos a esas carpetas que comentabas.

Mira en las nota de descarga del docker, suelen venir indicaciones de parámetros opcionales.?
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#5
La verdad que hasta ahora poco he tenido que toquitear con un contenedor desde ContainerStation. Pero siempre viene bien para seguir aprendiendo cosas nuevas  Tongue

Eso sí, tengo pendiente revisar tu hilo/tutorial de cómo crear una "appliance" para WireGuard, ya que mi firmware no contempla tal mejora en el QVPN y sigo tirando con OpenVPN  Rolleyes
https://www.qnapclub.es/showthread.php?tid=4068
TS-253A 2x4TB RAID1 8GB RAM
“La inteligencia es la habilidad de evitar hacer trabajo y conseguir que el trabajo se haga.” (Linus Torvalds)
  Responder




Usuarios navegando en este tema: 1 invitado(s)