vsftpd - ftpuser não pode fazer upload de arquivos para o servidor

2

Estou desenvolvendo um site no Netbeans onde configurei o FTP para enviar arquivos para o meu servidor. No servidor - Ubuntu 14.04 LTS - eu criei um usuário chamado "ftpuser" especificamente para esta tarefa. Eu instalei o vsFTPd para lidar com uploads de arquivos. Sua configuração é ruim:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
file_open_mode=0644
local_umask=022
dirmessage_enable
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
allow_writeable_chroot=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

O diretório inicial do ftpuser é / var / www:

ftpuser:x:1005:1007:ftp user,,,:/var/www:/bin/bash

Sempre que tento enviar um arquivo, o NetBeans diz "Erro, arquivo NÃO enviado: arquivo.php" e a inspeção de pacotes com o wireshark me retorna esses erros:

226 - Transfer done (but failed to open directory)
553 - Could not create file. 

Mesmo com apenas fazendo ftp com a operação PUT me dá o erro 553. O usuário de FTP não tem problemas para fazer o login e mudar de diretório.

O diretório e todos os seus subdiretórios e arquivos têm as permissões definidas para 755 (777 - local_umask).

Há algo que estou perdendo? Ele costumava funcionar perfeitamente e não me lembro de mudar nada no NetBeans ou no vsFTPd.

ATUALIZAÇÕES

O proprietário do diretório (e subdiretórios / arquivos) está definido como:

drwxr-xr-x  6 marijn marijn 4096 Sep  1 14:21 noc

Mesmo chowning isso para ftpuser: ftpuser não faz nada.

    
por Beeelze 27.10.2015 / 11:26

3 respostas

1

É fácil ignorar, mas verifique se as portas que o vsftpd configurou estão abertas no seu firewall.

Eu tive problemas semelhantes nos quais minha conexão com o servidor FTP passaria bem, mas não consegui listagens de diretórios para a pasta. Passei 6 horas procurando sem solução uma solução, mas isso resolveu meu problema.

Verifique seu arquivo conf para as portas especificadas:

vi /etc/vsftpd.conf

Você está procurando por essas duas linhas:

pasv_max_port=12100
pasv_min_port=12000

Neste caso, eu abriria as portas 12000-12100 para transferência em modo passivo:

ufw allow  12000:12100 /tcp

HTH

    
por 27.10.2015 / 12:29
1

Felizmente, eu tinha uma configuração de trabalho no meu servidor de desenvolvimento. Às vezes eu preciso fazer upload de algumas mudanças diretamente no servidor live e de alguma forma eu configurei o vsftpd.conf diferentemente. Além disso, as configurações de FTP no Netbeans eram diferentes.

Isto é o que o meu vsftpd.conf se parece agora: (note a ausência do chroot)

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

O diretório inicial no Netbeans foi definido como:

/var/www/noc
    
por 27.10.2015 / 13:14
0

De acordo com seus detalhes, eu diria que seu usuário não tem permissão para escrever no diretório para o qual você está tentando fazer o upload.
O proprietário / grupo é marijn. Mas apenas o usuário pode gravar no diretório, grupo e outros usuários só podem ler e entrar no diretório.

Seu usuário é ftpuser.
Então, você adiciona o ftpuser ao grupo marijn e dá o direito ao grupo marijn para /var/www/noc e subdirs: chmod -R g+w /var/www/noc ou você tem que fazer o ftpuser o dono do diretório onde você quer escrever.

    
por 27.10.2015 / 12:07