Erro de FTP ao alterar diretórios

0

Estou tentando transferir arquivos do Windows para um servidor vsFTPd em execução no Linux. Eu posso transferir arquivos com sucesso para o diretório home, mas quando eu mudo o diretório, recebo um erro. Abaixo está uma transcrição demonstrando o problema.

C:\>ftp
ftp> open 10.50.0.21
Connected to 10.50.0.21.
220 (vsFTPd 2.0.5)
User (10.50.0.21:(none)): user1
331 Please specify the password.
Password:
230 Login successful.

ftp> put D:/rez2g.ahk
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
ftp: 2401 bytes sent in 0.00Seconds 2401000.00Kbytes/sec.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
apache-tomcat-6.0.29
rez2g.ahk
victor.war
226 Directory send OK.
ftp: 48 bytes received in 0.00Seconds 48000.00Kbytes/sec.

ftp> cd 1/
250 Directory successfully changed.
ftp> pwd
257 "/home/user1/1"

ftp> put D:/rez2g.ahk
200 PORT command successful. Consider using PASV.
553 Could not create file.
    
por vinod 27.02.2012 / 06:26

1 resposta

1

Houve um problema antigo com o SELINUX que não permitia que usuários de FTP escrevessem em seus caminhos iniciais.
Até onde eu vi, você pode consertar isso de duas maneiras:

[1] Disable selinux (não recomendado para ambiente de produção)

[2] execute o seguinte comando como root (o preferido):

setsebool -P ftp_home_dir=1

Editar:
Você pode ter certeza que write_enable=YES foi adicionado em /etc/vsftpd/vsftpd.conf?

Editar 2:
Eu pensei em várias outras coisas que podem ser um problema, mas são relativamente fáceis de verificar:
Arquivo já existe, mas você não tem permissão para sobrescrevê-lo
O disco está cheio (ou quota alcançada)

Além disso, isso pode ser um problema esquisito de umask, com overriding do vsftp. As pastas que você cria 644?
Para usuário user1, qual é a saída do comando umask ?

    
por 27.02.2012 / 13:28