Debian 6: configurando o FTP apenas para edição de sites

1

Eu tenho um VPS usando o Debian 6.0. Atualmente, o SSH está configurado para não aceitar logins de senha e somente os baseados em chave.

Uma pessoa que precisa trabalhar em um site específico (um vhost) deseja usar o FTP. Ele não precisa / quer SSH. Como posso configurar o acesso FTP para ele, permitindo que ele tenha permissões de gravação para todos os arquivos no diretório relevante e apenas o diretório relevante? O diretório é /srv/www/domainname.com/public_html

Atualmente, todos os diretórios e arquivos desse diretório pertencem a www-data: www-data e são 644/755.

Instalei o vsftpd e tenho lido alguns guias, mas todos eles parecem lidar com a permissão de vários usuários terem seus próprios diretórios nomeados pelo usuário, o que não é o que eu estou procurando. Eu não consigo descobrir como simplesmente definir um usuário de FTP com uma senha que tenha acesso a um diretório de minha escolha.

Esta é minha primeira experiência de configuração de um servidor FTP.

Obrigado.

Editar: também foram encontrados este - talvez eu deveria estar usando o ProFTPd, ou o vsftpd também pode fazer o que eu quero?

    
por David Oliver 03.03.2011 / 00:10

1 resposta

1

Se você quiser usar a solução somente SFTP, criei recentemente uma postagem no blog que descreve exatamente isso, incluindo alguns dos erros mais comuns: link

Se você quiser ir com a solução FTP, o vsftpd é realmente uma boa escolha. No entanto, quando um usuário fizer o upload de um arquivo, ele será definido com seu usuário e grupo seguindo a umask definida. Você pode definir o grupo primário do usuário para www-data e depois criar um umask que se ajuste ao vsftpd.

Esta é uma maneira rápida de fazer o que eu sugeri:

Crie o usuário com o grupo www-data, sem shell real e o diretório home correto, defina a senha depois

useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername
passwd theusername

Certifique-se de que o vsftpd aceite seu shell. cat / etc / shells e procure / bin / false (não deve estar lá por padrão) - se não estiver lá, adicione:

echo "/bin/false" >> /etc/shells

Em seguida, edite o arquivo de configuração vsftpd. Toque nestes parâmetros: (se eles estiverem comentados, remova o #)

Desativar acesso anônimo ao servidor

anonymous_enable=NO

Permitir que usuários locais usem o FTP

local_enable=YES

Permitir uploads de arquivos

write_enable=YES

Defina o umask, para que os arquivos enviados pelo usuário também sejam graváveis por grupo (www-data)

local_umask=002

Chroot o usuário para que ele não possa sair de seu diretório home

chroot_local_user=YES

Agora, reinicie o vsftpd

/etc/init.d/vsftpd restart

e você deve estar tudo pronto.

MAS!

  • FTP é geralmente inseguro.
  • Se o SFTP for possível, use-o.
  • Ter o servidor da Web permitido para gravar em arquivos é uma falha de segurança, a menos que o diretório seja usado para uploads ou arquivos que o site geralmente altera.
por 03.03.2011 / 01:24

Tags