Cómo entender los permisos en archivos Linux - Guía completa chmod, chown, octal

Imagen
Linux | File Permissions | Security Permisos en archivos Linux: Guía completa de chmod, chown y octal Domina rwx, 755, 644. Entiende permisos usuario/grupo/otros. Seguridad y control total de tu sistema. De novato a experto. ¿Qué son los permisos en Linux? Los permisos en Linux son reglas que controlan quién puede hacer qué con cada archivo o carpeta . Son la base de la seguridad en Linux: sin ellos, cualquier usuario podría leer, modificar o ejecutar cualquier archivo del sistema. Entender permisos es esencial para administración de servidores, seguridad y DevOps. Tres conceptos clave: Read (lectura), Write (escritura), Execute (ejecución). Tres categorías: User (dueño), Group (grupo), Others (otros usuarios). Dos formatos: Notación simbólica (rwx) y octal (755). El ejemplo clásico: Tu archivo de configuración con contraseñas. Quieres que solo TÚ puedas leerlo (600). Si los permisos son 644, otros u...

Cómo instalar ownCloud en Docker - Almacenamiento en la nube en Docker

ownCloud | Cloud Storage | Docker

ownCloud: Almacenamiento en la nube self-hosted con Docker

Plataforma de sincronización y colaboración de archivos open source. Control total de tus datos con rendimiento empresarial, calendarios, contactos y edición colaborativa.

¿Qué es ownCloud?


ownCloud
es una plataforma de almacenamiento y colaboración en la nube de código abierto que te permite alojar tus propios datos en tu servidor, manteniendo el control total sobre la privacidad y seguridad de tu información.

Es una alternativa self-hosted a servicios como Google Drive, Dropbox o Microsoft OneDrive. Con ownCloud puedes sincronizar archivos entre dispositivos, compartir archivos y carpetas, gestionar calendarios y contactos, y colaborar en documentos en tiempo real.

Privacidad y soberanía de datos: A diferencia de los servicios cloud comerciales, con ownCloud tus datos permanecen en tu infraestructura. Ideal para empresas, organizaciones y usuarios conscientes de la privacidad que necesitan cumplir con GDPR y regulaciones de datos.

Características principales

Sincronización de archivos

Sincroniza automáticamente archivos entre tus dispositivos con clientes para Windows, macOS, Linux, iOS y Android.

Compartir archivos

Comparte archivos y carpetas mediante enlaces públicos o privados con contraseña y fecha de expiración.

Edición colaborativa

Edición de documentos en línea integrada con Collabora Online o Microsoft Office Online vía WOPI.

Calendarios y contactos

Sincronización de calendarios y contactos con soporte para estándares CalDAV y CardDAV.

Almacenamiento externo

Conecta servicios de almacenamiento externos como Amazon S3, Google Drive, Dropbox o SMB/CIFS.

Seguridad y encriptación

Cifrado en tránsito y en reposo, autenticación de dos factores, políticas de contraseñas y más.

API y apps

Marketplace con aplicaciones para extender funcionalidades: antivirus, flujos de trabajo, notificaciones.

Escalable

Soporta clústeres, balanceo de carga y almacenamiento distribuido para instalaciones empresariales.

Configuración con archivo .env

La mejor práctica para desplegar ownCloud con Docker Compose es usar un archivo .env para centralizar la configuración. Esto mantiene los datos sensibles separados del docker-compose.yml y facilita la gestión del entorno.

Estructura del archivo .env

# ownCloud .env - Variables de configuración OWNCLOUD_VERSION=10.16 # Versión de ownCloud a desplegar OWNCLOUD_DOMAIN=localhost:8080 # Dominio o IP del servidor OWNCLOUD_TRUSTED_DOMAINS=localhost # Dominios de confianza separados por espacio ADMIN_USERNAME=admin # Usuario administrador ADMIN_PASSWORD=admin # Contraseña del administrador HTTP_PORT=8080 # Puerto para acceso HTTP
Tip de seguridad: Nunca compartas el archivo .env ni lo subas a repositorios públicos. Utiliza una contraseña segura para ADMIN_PASSWORD y considera usar Docker secrets para datos sensibles en producción.

Crear el archivo .env

mkdir owncloud-docker-server cd owncloud-docker-server cat << EOF > .env OWNCLOUD_VERSION=10.16 OWNCLOUD_DOMAIN=localhost:8080 OWNCLOUD_TRUSTED_DOMAINS=localhost ADMIN_USERNAME=admin ADMIN_PASSWORD=admin HTTP_PORT=8080 EOF

Instalación rápida con Docker

Evaluación rápida (SQLite - solo para pruebas)

docker run --rm --name oc-eval -d -p8080:8080 owncloud/server

Accede a http://localhost:8080 con usuario admin y contraseña admin.

Advertencia: SQLite solo está soportado para pruebas. Para producción utiliza MariaDB o PostgreSQL como se describe a continuación.

Instalación recomendada con Docker Compose + .env

Crea el archivo docker-compose.yml en la misma carpeta que tu .env:

version: "3" volumes: files: driver: local mysql: driver: local redis: driver: local services: owncloud: image: owncloud/server:${OWNCLOUD_VERSION} container_name: owncloud_server restart: always ports: - ${HTTP_PORT}:8080 depends_on: - mariadb - redis environment: - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN} - OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS} - OWNCLOUD_DB_TYPE=mysql - OWNCLOUD_DB_NAME=owncloud - OWNCLOUD_DB_USERNAME=owncloud - OWNCLOUD_DB_PASSWORD=owncloud - OWNCLOUD_DB_HOST=mariadb - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME} - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD} - OWNCLOUD_MYSQL_UTF8MB4=true - OWNCLOUD_REDIS_ENABLED=true - OWNCLOUD_REDIS_HOST=redis healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 volumes: - files:/mnt/data mariadb: image: mariadb:10.11 container_name: owncloud_mariadb restart: always environment: - MYSQL_ROOT_PASSWORD=owncloud - MYSQL_USER=owncloud - MYSQL_PASSWORD=owncloud - MYSQL_DATABASE=owncloud - MARIADB_AUTO_UPGRADE=1 command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] healthcheck: test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"] interval: 10s timeout: 5s retries: 5 volumes: - mysql:/var/lib/mysql redis: image: redis:6 container_name: owncloud_redis restart: always command: ["--databases", "1"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 volumes: - redis:/data

Iniciar ownCloud

docker compose up -d

Comprueba que todos los contenedores están funcionando:

docker compose ps

Archivo .env avanzado

Para entornos de producción o configuraciones más complejas, puedes añadir más variables al .env:

# .env avanzado para ownCloud # Versión y dominio OWNCLOUD_VERSION=10.16 OWNCLOUD_DOMAIN=nube.tu-dominio.com OWNCLOUD_TRUSTED_DOMAINS=nube.tu-dominio.com 192.168.1.10 # Credenciales de administrador ADMIN_USERNAME=admin ADMIN_PASSWORD=contraseña-muy-segura-123! # Puerto y red HTTP_PORT=8080 COMPOSE_PROJECT_NAME=owncloud-produccion # Opcional: Configuraciones adicionales OWNCLOUD_LOGLEVEL=2 # Nivel de logging: 0=debug, 2=warning OWNCLOUD_MAX_UPLOAD=20G # Tamaño máximo de subida de archivos OWNCLOUD_DEFAULT_LANGUAGE=es # Idioma por defecto
Proyecto de Docker Compose: La variable COMPOSE_PROJECT_NAME define el nombre del proyecto y afecta el naming de volúmenes y contenedores. Es útil para separar múltiples instancias en el mismo host.

Comandos útiles

Ver logs en tiempo real

docker compose logs --follow owncloud

Comandos occ (ownCloud Console)

# Listar usuarios docker compose exec owncloud occ user:list # Poner ownCloud en modo mantenimiento docker compose exec owncloud occ maintenance:mode --on # Actualizar la base de datos docker compose exec owncloud occ upgrade # Generar índice de búsqueda docker compose exec owncloud occ search:index:rebuild

Backup de la base de datos

# Crear backup de MariaDB docker compose exec mariadb \ /usr/bin/mysqldump \ -u root \ --password=owncloud \ --single-transaction \ owncloud > owncloud_$(date +%Y%m%d).sql

Actualizar ownCloud

Paso 1: Poner en modo mantenimiento y backup

docker compose exec owncloud occ maintenance:mode --on docker compose exec mariadb \ /usr/bin/mysqldump -u root --password=owncloud \ --single-transaction owncloud > owncloud_$(date +%Y%m%d).sql

Paso 2: Actualizar versión en .env

sed -i 's/^OWNCLOUD_VERSION=.*$/OWNCLOUD_VERSION=10.17/' .env cat .env

Paso 3: Reiniciar contenedores

docker compose down docker compose up -d

Paso 4: Desactivar modo mantenimiento

docker compose exec owncloud occ maintenance:mode --off
Importante: Si cambias ADMIN_USERNAME y ADMIN_PASSWORD en el .env después de la instalación inicial, los valores no se actualizarán automáticamente. Para cambiarlos, debes usar occ o recrear el volumen de datos (esto borrará la información).

Configurar HTTPS con Nginx (Reverse Proxy)

server { listen 443 ssl; server_name nube.tu-dominio.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 300; proxy_connect_timeout 300; proxy_send_timeout 300; } }
Trusted Domains: Recuerda añadir tu dominio a OWNCLOUD_TRUSTED_DOMAINS en el .env o ownCloud rechazará las peticiones desde ese dominio.

Casos de uso

  • Empresas: Plataforma de colaboración y compartición de archivos interna con control total de datos
  • Instituciones educativas: Espacio de almacenamiento compartido para estudiantes y profesores
  • Organizaciones gubernamentales: Almacenamiento seguro conforme con regulaciones de privacidad y datos
  • Desarrolladores: Integración con pipelines de CI/CD y documentación colaborativa
  • Familias: Nube personal para fotos, documentos y calendarios compartidos
  • Freelancers: Compartición segura de archivos con clientes mediante enlaces protegidos

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.