Como permitir acesso FTP a apenas uma pasta específica dentro da sua VPS

Para liberar acesso FTP a apenas uma pasta específica dentro da sua VPS.

Em 22/07/2025 | Por Digital Apps | 12 visualizações

Para liberar acesso FTP a apenas uma pasta específica dentro da sua VPS, siga estes passos (assumindo que você está usando um servidor Linux como Ubuntu + vsftpd ou proftpd):


? 1. Instale um servidor FTP

Se ainda não tiver um, o mais comum e seguro é o vsftpd:

sudo apt update
sudo apt install vsftpd

? 2. Crie um usuário FTP limitado a uma pasta

Exemplo: Criar usuário ftpuser com acesso somente à pasta /var/www/html

# Crie o diretório, se ainda não existir
sudo mkdir -p /var/www/html

# Crie um novo usuário sem acesso SSH
sudo useradd -d /var/www/html -s /usr/sbin/nologin ftpuser

# Defina a senha
sudo passwd ftpuser

# Dê permissão à pasta
sudo chown ftpuser:ftpuser /var/www/html

? 3. Configure o vsftpd para chroot (confinar o usuário)

Edite o arquivo de configuração:

sudo nano /etc/vsftpd.conf

Altere ou adicione:

# Impede que o usuário acesse além da pasta dele
chroot_local_user=YES
allow_writeable_chroot=YES

# Habilita o FTP para usuários locais
local_enable=YES
write_enable=YES

# Impede acesso a pastas superiores
user_sub_token=$USER
local_root=/home/$USER

Se você quer que o ftpuser fique travado na pasta /var/www/html, use:

user_sub_token=$USER
local_root=/var/www/html

? 4. Reinicie o serviço

sudo systemctl restart vsftpd

? 5. Teste via FileZilla ou outro cliente FTP

  • Host: seu IP ou domínio

  • Usuário: ftpuser

  • Senha: a que você definiu

  • Porta: 21


 

? Passo a passo para aplicar chroot em SFTP com OpenSSH:

1. ???? Crie um grupo de SFTP restrito (se ainda não existir):

sudo groupadd sftpusers

2. ???? Adicione o usuário ao grupo:

sudo usermod -aG sftpusers ftpuser

3. ????? Edite o arquivo de configuração do SSH:

sudo nano /etc/ssh/sshd_config

4. ?? No final do arquivo, adicione:

Match Group sftpusers
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

?? Isso fará com que qualquer usuário do grupo sftpusers:

  • Use apenas SFTP

  • Seja preso em /var/www

  • Não consiga abrir terminal (SSH) nem subir pastas


5. ?? Corrija as permissões (isso é crítico!):

???? A pasta do ChrootDirectory deve ser do root e sem permissão de escrita para outros usuários:

sudo chown root:root /var/www
sudo chmod 755 /var/www

???? Crie uma subpasta onde o usuário realmente possa gravar arquivos:

sudo mkdir -p /var/www
sudo chown ftpuser:ftpuser /var/www
sudo chmod 755 /var/www

6. ???? Reinicie o serviço SSH:

sudo systemctl restart ssh

7. ? Teste

  • Conecte com FileZilla usando SFTP (porta 22)

  • Você só deve ver a pasta /uploads e não conseguir sair dela


? Dica extra (se quiser restringir ainda mais):

Você pode definir o home do usuário para coincidir com a pasta final acessível:

sudo usermod -d /uploads ftpuser

Mas o importante é o ChrootDirectory, não o home.


Se quiser que eu verifique a configuração que você tem no sshd_config, é só colar aqui. Posso te ajudar a ajustar exatamente para o caminho que você precisa.

Tenha um site profissional

Somos especialistas em desenvolver sites personalizados, que atenda às suas necessidades e impulsione seu negócio.

Quero receber novidades:


Artigos relacionados

WhatsApp
(35) 99198-6202