Transloadit
Precios
  • Subida de archivos
  • Importación de archivos
  • Procesamiento por lotes
  • Encoding de video
  • Encoding de audio
  • Procesamiento de imágenes
  • Procesamiento de documentos
  • Inteligencia artificial
  • Filtrado y seguridad de archivos
  • Catalogación de medios
  • Compresión de archivos
  • Evaluación de código
  • Exportación de archivos
  • Smart CDN
  • Ver todos los servicios
  • Explora integraciones
  • Explora demos en vivo (English)
  • Uppy
  • TransloaditKit
  • SDK para Android
  • SDK para Node.js
  • SDK para Python
  • SDK para Ruby
  • SDK para Go
  • SDK para Java
  • SDK para PHP
  • Zapier
  • Servidor MCP
  • Transloadit CLI
  • Terraform
  • Conceptos esenciales
  • Prácticas recomendadas
  • FAQ
  • Robots
  • Endpoints de la API
  • Formatos
  • Crea tu primera app
  • Acerca de Transloadit
  • Comparaciones
  • Código abierto
  • Testimonios
  • Empleos (English)
  • Seguridad
  • Entradas
  • Actualidad para desarrolladores (English)
  • Consejos para desarrolladores
  • Prensa
  • Investigación (English)
  • Casos de éxito
  • Soluciones
  • Guías
  • Glosario
  • Legal (English)
  • Herramientas
  • Cómo ayudamos a Coursera a llevar educación a millones de personas en todo el mundo
  • Soporte de Transloadit
  • Soporte para código abierto
  • Acuerdo de nivel de servicio (English)
Conceptos esencialesRobotsFAQEndpoints de la APIFormatosPrácticas recomendadas

¿Cómo limito a un usuario de SFTP a un solo directorio?

Usa ChrootDirectory de OpenSSH con su servidor SFTP interno en un servidor que administres. La cuenta restringida ve su directorio asignado como /, mientras que un subdirectorio independiente conserva permisos de escritura para las subidas. Esto no permite que la cuenta acceda a una shell ni utilice el reenvío de conexiones.

El siguiente ejemplo para Linux presupone que ya existe una cuenta dedicada llamada transloadit, con un grupo principal llamado transloadit y el directorio de inicio /home/transloadit. Primero, verifica que esta cuenta pueda iniciar sesión con su clave SSH según tu política de autenticación actual. No uses una cuenta de administrador. No cambies el directorio de inicio de la cuenta restringida a /.

Mantén abierta una sesión de administrador mientras cambias la configuración de SSH y asegúrate de tener otra forma de acceder al servidor si se rechaza la nueva configuración.

Prepara los directorios

Crea el directorio raíz restringido, una copia vacía de la ruta del directorio de inicio de la cuenta dentro de él y el directorio de subidas. SSH sigue leyendo las claves autorizadas existentes de la cuenta antes de entrar en el sistema de archivos restringido; no copies claves privadas en él.

sudo install -d -o root -g root -m 755 /srv/sftp/transloadit
sudo install -d -o root -g root -m 755 /srv/sftp/transloadit/home/transloadit
sudo install -d -o transloadit -g transloadit -m 750 /srv/sftp/transloadit/uploads

Cada componente de /srv/sftp/transloadit, incluidos /srv y /srv/sftp, debe pertenecer a root y no debe permitir la escritura a otros usuarios o grupos. Solo el subdirectorio uploads pertenece a la cuenta restringida. No habilites la escritura en el directorio raíz restringido para solucionar un error de subida.

Restringe la cuenta

En /etc/ssh/sshd_config, reemplaza la línea Subsystem sftp existente por la siguiente. Mantenla en la sección global, antes de cualquier bloque Match; no añadas una segunda declaración del subsistema SFTP.

Subsystem sftp internal-sftp

Añade este bloque específico de la cuenta al final de la configuración:

Match User transloadit
    ChrootDirectory /srv/sftp/%u
    ForceCommand internal-sftp -d /uploads
    DisableForwarding yes
    PermitTunnel no
    PermitTTY no

ForceCommand inicia SFTP en /uploads en lugar de aceptar comandos de shell. DisableForwarding también bloquea el reenvío SSH, algo que un comando SFTP forzado por sí solo no impide. Los requisitos de autenticación existentes de la cuenta siguen vigentes. Adapta el nombre de la cuenta y la ruta de su directorio de inicio si los tuyos son diferentes, y revisa cualquier regla de coincidencia anterior o archivo de configuración incluido.

Valida antes de recargar

Comprueba la sintaxis y la configuración efectiva de la cuenta restringida:

sudo sshd -t
sudo sshd -T -C user=transloadit,host=localhost,addr=127.0.0.1

En el segundo comando, usa la dirección y el nombre de host reales del cliente cuando tu configuración contenga reglas específicas para direcciones o hosts. Confirma que la configuración efectiva incluya los ajustes previstos para chrootdirectory, forcecommand, disableforwarding yes, permittunnel no y permittty no. DisableForwarding prevalece sobre las opciones de reenvío individuales que pueden seguir apareciendo habilitadas en esta salida. No recargues una configuración que no supere la validación. Usa el comando de recarga del servicio SSH indicado en la documentación de tu sistema operativo y, después, verifica tanto una nueva conexión de administrador como una nueva conexión SFTP antes de cerrar la sesión original.

Desde tu cliente, conéctate con sftp transloadit@your-server.example y comprueba el directorio:

sftp> pwd
Remote working directory: /uploads
sftp> cd /
sftp> pwd
Remote working directory: /
sftp> cd ..
sftp> pwd
Remote working directory: /

Sube un archivo de prueba inofensivo a /uploads y vuelve a descargarlo. El intento de crear un archivo directamente en / debe fallar. Verifica también que se rechacen un comando de shell y el reenvío de puertos. La ruta SFTP /uploads corresponde a /srv/sftp/transloadit/uploads en el servidor, no a la ruta /uploads del propio servidor.

Usa la cuenta con /sftp/import o /sftp/store, siguiendo la documentación del Robot sobre autenticación y rutas. Un chroot restringe el acceso al sistema de archivos; no sustituye la autenticación de la cuenta, los permisos del sistema de archivos ni la política de red. Consulta el manual de configuración de OpenSSH⁠ para conocer la semántica completa de las directivas, y consulta la documentación de tu distribución para la gestión del servicio.

Consulta también:

¿Habrá alguna vez una cola de encoding?
¿Qué hago si mis importaciones o exportaciones desde Backblaze, S3, GCP, etc. son lentas?
¿Habrá sorpresas después de registrarme?
Contactar a soporte⁠

TransloaditVerificando el estado…

Producto

  • Servicios
  • Precios
  • Demos EN (English)
  • Herramientas
  • Seguridad
  • Soporte

Empresa

  • Acerca de Transloadit/Prensa
  • Blog/Empleos EN (English)
  • Comparaciones/Matriz de cumplimiento
  • Investigación EN (English)
  • Código abierto
  • Soluciones
  • Pioneros de la web

Documentación

  • Primeros pasos
  • Transcodificación
  • FAQ
  • Endpoints de la API
  • Guías/Consejos para desarrolladores
  • Formatos compatibles

Más

  • Estado de la plataforma⁠
  • Foro de la comunidad⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Transloadit®, el protocolo tus® y Uppy® son marcas registradas de Transloadit-II GmbH en Estados Unidos.

Privacidad EN (English)Términos EN (English)Aviso legal EN (English)Marcas comerciales EN (English)Política de DMCA EN (English)
EnglishDeutschEspañolFrançaisPortuguês (Brasil)