Por que o programa 'ftp' não consegue ler um arquivo no diretório / tmp?

2

Ao fazer um script de upload de ftp automatizado, notei um comportamento muito estranho de ftp program: se eu quiser enviar um arquivo que pertença ao diretório /tmp , ftp sempre falhará e dará uma mensagem de erro: cannot create file .

Veja isto:

^_^ ~ > touch /tmp/file1

^_^ ~ > touch file2

^_^ ~ > ftp <server>
Connected to <server> (<server ip>).
220 (vsFTPd 2.2.2)
Name (<server:username>): <username>
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> put /tmp/file1
local: /tmp/file1 remote: /tmp/file1
227 Entering Passive Mode (<ip>).
553 Could not create file.

ftp> put file2
local: file2 remote: file2
227 Entering Passive Mode (<ip>).
150 Ok to send data.
226 Transfer complete.
ftp> 

O que há de errado com ftp lendo um arquivo de /tmp ?

Não há SELinux ou AppArmor no servidor nem no cliente ftp .

    
por Howard 21.02.2013 / 00:41

3 respostas

1

O problema não está lendo o arquivo de /tmp - leia a mensagem de erro: "553 Não foi possível criar o arquivo". Quando você diz

put a_single_file_name

que é equivalente a

put  single_file_name   that_same_file_name_again

Portanto, put /tmp/file1 é equivalente a put /tmp/file1 /tmp/file1 e isso falhará se o servidor FTP não tiver um diretório /tmp gravável configurado. Experimente put /tmp/file1 file1 ou talvez put /tmp/file1 ./file1 .

    
por 21.02.2013 / 01:33
1

Observe que quando você executa ftp , está conectado a uma máquina remota. Use o lcd para alterar os diretórios em sua máquina local; cd mudará os diretórios na máquina remota. No seu caso

lcd /tmp
put file1
lcd <to original directory>
    
por 21.02.2013 / 01:29
1

Use ls -l para exibir as permissões na pasta. O usuário que você autentica tem acesso de gravação a esse diretório? Caso contrário, você precisará usar chmod para garantir que isso aconteça ou nunca funcionará.

Geralmente, as contas FTP têm acesso limitado a áreas próximas a / . Na verdade, alguns sistemas são configurados para que eles possam SOMENTE gravar em /home/ftpUserName

    
por 21.02.2013 / 01:46