2

При создании сценария автоматической загрузки по ftp я заметил очень странное поведение программы ftp : если я хочу отправить файл, который принадлежит каталогу /tmp , ftp всегда завершится ошибкой и выдаст сообщение об ошибке: cannot create file .

Видеть это:

^_^ ~ > 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> 

Что не так с ftp читающим файл из /tmp?

На сервере и на ftp клиенте нет SELinux или AppArmor.

3 ответа3

1

Обратите внимание, что когда вы запускаете ftp вы подключаетесь к удаленной машине. Используйте lcd для смены каталогов на вашем локальном компьютере; cd изменит каталоги на удаленной машине. В твоем случае

lcd /tmp
put file1
lcd <to original directory>
1

Проблема не в чтении файла из /tmp - прочитайте сообщение об ошибке: «553 Не удалось создать файл».  Когда ты сказал

put имя_файла_файла

это эквивалентно

put имя_файла_на имя_файла_аген

Таким образом, put /tmp/file1 эквивалентен положению put /tmp/file1 /tmp/file1 , и это не работает, если на FTP-сервере не настроен каталог для записи /tmp .  Попробуйте put /tmp/file1 file1 , или, возможно, put /tmp/file1 ./file1 .

1

Используйте ls -l для просмотра прав доступа к папке. Имеет ли пользователь, которого вы аутентифицируете, права на запись в этот каталог? Если нет, вам нужно использовать chmod чтобы убедиться, что он работает, иначе он никогда не будет работать.

Часто учетные записи FTP имеют ограниченный доступ к областям, близким к / На самом деле, некоторые системы настроены так, что они могут ТОЛЬКО записывать в /home/ftpUserName

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .