Eu preciso dar periodicamente acesso temporário e limitado a vários diretórios em um servidor linux CentOS que tenha o vsftp instalado.
Eu criei um usuário usando useradd [user_name]
e dei a eles uma senha usando passwd [password]
.
Eu criei um diretório /var/ftp
e, em seguida, vinculo-o ao diretório ao qual desejo limitar o acesso.
O que mais preciso fazer especificamente para garantir que, quando esse usuário fizer login no FTP, ele só tenha acesso a esse diretório, por favor?
Resposta completa que resolveu minha pergunta para outras pessoas que estão atrás de um passo a passo ...
Instale
vsftpd
usando isto como um guia .useradd [user_name]
.passwd [user_name]
. (Você será solicitado a especificar a senha)./var/ftp
e vincule-o ao diretório 'home' que você deseja especificar para este usuário commount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
.Altere o diretório inicial do usuário com
usermod -d /var/ftp/custom_name/ user_name
Em
/etc/vsftpd/vsftpd.conf
, certifique-se de que todos os itens a seguir estejam definidos:-Liste apenas os usuários no
vsftpd.chroot_list
arquivo se desejar que eles tenham acesso total a qualquer lugar do servidor. Ao não listá-los neste arquivo, você está dizendo restringir todos osvsftpd
usuários ao diretório inicial especificado.Em outras palavras (para referência): -
Para mim não funcionou mesmo depois do acima. Havia um local_root já definido para um diretório e, o que quer que eu faça, o diretório do usuário não foi preso. Finalmente é trabalhado depois de apenas alterado
E seguindo o procedimento
Apenas meus dois centavos se alguém tiver o mesmo problema.
O chrooting mencionado nas respostas anteriores não funcionou no meu servidor Ubuntu 18.04. Finalmente consegui trabalhar usando esta referência: https://passingcuriosity.com/2014/openssh-restrict-to-sftp-chroot/