Transloadit
Preços
  • Uploads de arquivos
  • Importação de arquivos
  • Processamento em lote
  • Codificação de vídeo
  • Codificação de áudio
  • Processamento de imagens
  • Processamento de documentos
  • Inteligência artificial
  • Filtragem de arquivos e segurança
  • Catalogação de mídia
  • Compressão de arquivos
  • Avaliação de código
  • Exportação de arquivos
  • Smart CDN
  • Ver todos os serviços
  • Explore integrações
  • Explore demonstrações interativas (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
  • Essenciais
  • Boas práticas
  • Perguntas frequentes
  • Robots
  • API
  • Formatos
  • Crie seu primeiro app
  • Sobre a Transloadit
  • Comparações
  • Código aberto
  • Depoimentos
  • Vagas (English)
  • Segurança
  • Publicações
  • Notícias para devs (English)
  • Dicas para devs
  • Imprensa
  • Pesquisa (English)
  • Estudos de caso
  • Soluções
  • Guias
  • Glossário
  • Jurídico (English)
  • Ferramentas
  • Ajudando a Coursera a levar educação a milhões de pessoas no mundo todo
  • Suporte da Transloadit
  • Suporte para código aberto
  • Acordo de nível de serviço (English)
EssenciaisRobotsPerguntas frequentesAPIFormatosBoas práticas

Como limitar um usuário SFTP a um único diretório?

Use ChrootDirectory do OpenSSH com seu servidor SFTP interno em um servidor que você administra. A conta restrita vê o diretório atribuído a ela como /, enquanto um subdiretório separado permanece gravável para uploads. Isso não dá à conta acesso a um shell nem a encaminhamento.

O exemplo a seguir, para Linux, pressupõe uma conta dedicada já existente chamada transloadit, um grupo primário chamado transloadit e um diretório pessoal em /home/transloadit. Primeiro, verifique se essa conta consegue fazer login com sua chave SSH de acordo com a política de autenticação existente. Não use uma conta de administrador. Não altere o diretório pessoal da conta restrita para /.

Mantenha uma sessão de administrador aberta enquanto altera as configurações do SSH e garanta que você tenha outra forma de acessar o servidor caso a nova configuração seja rejeitada.

Prepare os diretórios

Crie a raiz restrita, uma cópia vazia do caminho do diretório pessoal da conta dentro dela e o diretório de upload. O SSH ainda lê as chaves autorizadas existentes da conta antes de entrar no sistema de arquivos restrito; não copie chaves privadas para ele.

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, incluindo /srv e /srv/sftp, deve pertencer ao root e não deve permitir gravação por outros usuários ou grupos. Apenas o subdiretório uploads pertence à conta restrita. Não permita gravação na raiz restrita para corrigir um erro de upload.

Restrinja a conta

Em /etc/ssh/sshd_config, substitua a linha Subsystem sftp existente pela linha a seguir. Mantenha-a na seção global, antes de qualquer bloco Match; não adicione uma segunda declaração do subsistema SFTP.

Subsystem sftp internal-sftp

Adicione este bloco específico da conta ao final da configuração:

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

ForceCommand inicia o SFTP em /uploads em vez de aceitar comandos de shell. DisableForwarding também bloqueia o encaminhamento SSH, o que um comando SFTP forçado, por si só, não impede. Os requisitos de autenticação existentes da conta continuam em vigor. Adapte o nome da conta e o caminho do diretório pessoal se os seus forem diferentes e revise quaisquer regras anteriores que se apliquem à conta ou arquivos de configuração incluídos.

Valide antes de recarregar

Verifique a sintaxe e a configuração efetiva da conta restrita:

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

No segundo comando, use o endereço e o nome de host reais do cliente quando sua configuração contiver regras específicas de endereço ou de host. Confirme que as configurações efetivas incluem os valores pretendidos para chrootdirectory, forcecommand, disableforwarding yes, permittunnel no e permittty no. DisableForwarding prevalece sobre as opções individuais de encaminhamento que ainda podem aparecer ativadas nessa saída. Não recarregue uma configuração que falhe na validação. Use o comando para recarregar o serviço SSH indicado na documentação do seu sistema operacional e, em seguida, verifique tanto uma nova conexão de administrador quanto uma nova conexão SFTP antes de fechar a sessão original.

A partir do seu cliente, conecte-se com sftp transloadit@your-server.example e verifique o diretório:

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

Faça upload de um arquivo de teste inofensivo para /uploads e baixe-o novamente. A criação de um arquivo diretamente em / deve falhar. Verifique também se um comando de shell e o encaminhamento de portas são rejeitados. O caminho SFTP /uploads se refere a /srv/sftp/transloadit/uploads no servidor, não ao diretório /uploads do próprio servidor.

Use a conta com /sftp/import ou /sftp/store, seguindo a documentação de autenticação e caminhos do Robot. Um chroot restringe o acesso ao sistema de arquivos; ele não substitui a autenticação da conta, as permissões do sistema de arquivos nem a política de rede. Consulte o manual de configuração do OpenSSH⁠ para conhecer toda a semântica das diretivas e a documentação da sua distribuição para saber como gerenciar o serviço.

Veja também:

Como restringir a seleção de arquivos para upload?
Por que arquivos do plano Community têm marca d’água ou corte?
Como posso limitar a duração dos meus vídeos de saída?
Falar com o suporte⁠

TransloaditVerificando status…

Produto

  • Serviços
  • Preços
  • Demonstrações EN (English)
  • Ferramentas
  • Segurança
  • Suporte

Empresa

  • Sobre a Transloadit/Imprensa
  • Blog/Vagas EN (English)
  • Comparações/Matriz de conformidade
  • Pesquisa EN (English)
  • Código aberto
  • Soluções
  • Pioneiros da web

Documentação

  • Primeiros passos
  • Transcodificação
  • Perguntas frequentes
  • API
  • Guias/Dicas para devs
  • Formatos suportados

Mais

  • Status da plataforma⁠
  • Fórum da comunidade⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Transloadit®, tus® e Uppy® são marcas registradas de Transloadit-II GmbH nos Estados Unidos.

Privacidade EN (English)Termos EN (English)Aviso legal EN (English)Marcas comerciais EN (English)Política de DMCA EN (English)
EnglishDeutschEspañolFrançaisPortuguês (Brasil)