El fin de los 'Permission Denied': Gestión profesional de discos en Linux y Proxmox
Si alguna vez has intentado montar un disco USB en un servidor Linux (ya sea una Raspberry Pi, un Mini PC o un servidor Proxmox) para compartirlo con varios servicios como qBittorrent, Plex o Audiobookshelf, te habrás encontrado con el “muro de los permisos”.
Descargas una película, pero no puedes borrarla desde tu explorador de archivos. El servidor de audiolibros no puede ver los archivos nuevos. Intentas arreglarlo con un chmod 777 (¡error!) y al día siguiente el problema vuelve.
En este artículo, vamos a ver cómo configurar un sistema de almacenamiento compartido de forma profesional, segura y, sobre todo, transparente.
El Problema: El Caos de los UIDs
En Linux, los permisos no se basan en nombres de usuario, sino en números llamados UIDs (User IDs).
- Tú en tu PC sueles ser el UID 1000.
- Root siempre es el UID 0.
- LXC (Proxmox): Los contenedores “unprivileged” mapean sus usuarios a rangos altos. El root de un contenedor suele ser el UID 100000 en tu servidor.
Cuando qBittorrent descarga un archivo dentro de un contenedor, lo guarda como “root” (100000). Cuando tú intentas borrarlo desde tu PC (1000) por NFS, el servidor dice: “Eh, tú no eres el dueño de esto”.
La Solución Elegante: ACLs (Access Control Lists)
Olvídate de cambiar el dueño (chown) de las carpetas constantemente. La solución moderna es usar ACLs. Esto permite que una misma carpeta tenga varios dueños con permisos totales.
1. Preparar el servidor (Host)
Primero, instalamos las herramientas necesarias en el servidor que tiene el disco:
apt update && apt install acl
2. Dar superpoderes a tus usuarios
Queremos que tanto tú (UID 1000), como qBittorrent (100000) y Audiobookshelf (101000) tengan acceso total. Ejecutamos estos comandos en el servidor:
# Otorgar permisos rwx a todos los implicados
setfacl -R -m u:1000:rwx -m u:100000:rwx -m u:101000:rwx /ruta/al/disco
# Asegurar que los archivos NUEVOS hereden estos permisos (Default ACLs)
setfacl -R -d -m u:1000:rwx -m u:100000:rwx -m u:101000:rwx /ruta/al/disco
El truco final: NFS sin fricciones
Para que tu explorador de archivos en tu PC principal vea todo esto correctamente, asegúrate de exportar el disco en /etc/exports con opciones que no “aplasten” los permisos:
/Almacen_NFS *(rw,sync,no_subtree_check,crossmnt,fsid=0,no_root_squash)
Al usar no_root_squash, el servidor NFS respetará los UIDs que vienen desde el cliente, permitiendo que tu usuario local 1000 se identifique correctamente ante las ACLs que acabamos de configurar.
Conclusión
Gestionar permisos en un Home Lab no tiene por qué ser una batalla constante. Al estandarizar los UIDs y usar ACLs, consigues que la tecnología trabaje para ti:
- Seguridad: Cada servicio sigue aislado en su contenedor.
- Comodidad: Puedes gestionar tus archivos desde el explorador como si fueran locales.
- Robustez: No más
chmod 777.
Ahora ya puedes centrarte en lo que importa: ¡disfrutar de tu contenido!