É bem simples.
Você tem que adicionar a seguinte opção no arquivo vsftpd.conf
chroot_local_user=YES
A documentação dentro do arquivo de configuração é autoexplicativa:
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
Isso significa que o usuário só terá acesso na pasta que você configurou como HOME do usuário. Abaixo, eu tenho um exemplo de uma entrada passwd de usuário:
upload_ftp:x:1001:1001::/var/www/sites/:/bin/bash
Defina o diretório inicial do usuário com o seguinte comando
usermod -d /var/www/my.domain.example/ exampleuser
Nota: No meu exemplo, este usuário também é um usuário válido para algumas tarefas agendadas dentro do Linux. Se você não tiver essa necessidade, altere o shell do usuário para /sbin/nologin
em vez de bash
.