Como mostrar apenas um diretório específico para o usuário de FTP

4

No meu Ubuntu 14.04 eu instalei o servidor ftp ( FTPD ). Eu gostaria de criar um usuário para isso e definir o nologin para esse usuário. Ao efetuar logon usando um cliente FTP, quero que esse usuário específico possa ver todo o diretório do sistema.

Como faço para restringir um usuário desse tipo a um diretório (por exemplo, /usr/local/example )?

    
por Aravinth 05.05.2015 / 15:18

2 respostas

4

Para vsftpd , a configuração é extremamente simples:

sudo apt-get install vsftpd

então:

sudo nano /etc/vsftpd.conf

verifique se você tem os seguintes parâmetros definidos corretamente:

# Depending on the version you're running, you might want to set the following 
# parameter to YES 
# (if affected by https://bugs.launchpad.net/ubuntu/+source/vsftpd/+bug/1313450)
listen=YES
# to allow local users to log on:
local_enable=YES
#if you want write access too:
write_enable=YES
# Set anonymous user directory to /srv/ftp (no default)
anon_root=/srv/ftp
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES

# following for debugging purposes (to ensure you're on the right server)
ftpd_banner=Welcome to Aravind's FTP service.

# Now restrict users to their home directories:
chroot_local_user=YES
allow_writeable_chroot=YES

E agora, se você quiser definir um usuário específico para um diretório específico, basta criar um usuário com um diretório específico:

sudo adduser ftpuser --home /usr/local/example

Para testar:

Vá para um terminal na máquina executando vsftpd e digite: ftp 127.0.0.1 e se você for saudado pelo seu próprio banner, vsftpd funciona!

Em seguida, teste na mesma máquina seu endereço público: ftp 1.2.3.4 e, finalmente, de uma máquina remota para o endereço público. Se algo der errado com os endereços públicos, verifique as configurações do firewall.

Notas adicionais:

Se você não quiser que o usuário faça o logon, adicione o parâmetro --shell /bin/false ao comando adduser .

Você também pode querer excluir todos os diretórios / arquivos ( Desktop , Pictures , ... que o adduser criou se você não os quiser lá ...

Feito!

    
por Fabby 05.05.2015 / 17:22
1

Existe alguma razão pela qual você precisa usar esse software de servidor FTP específico? O que você está procurando é principalmente chamado de "chroot" ( ch ange o diretório root por usuário) ou algo similar. De acordo com este relatório de bug o servidor netkit ftp, que está contido no linux-ftpd package, não oferece esse recurso. Evento a página da barra de lançamento diz

  

Este é o servidor netkit ftp. Recomenda-se que você use um de seus    alternativas, como wu-ftpd ou proftpd.

Eu sei por experiência que pure-ftpd (definindo VIRTUALCHROOT ) e ProFTPd (por hosts virtuais oferecem o recurso que você está procurando. Ambos estão disponíveis nos repositórios padrão do Ubuntu. Outro software de servidor ftp provavelmente oferece recursos semelhantes.

    
por Henning Kockerbeck 05.05.2015 / 15:38