Я пытаюсь перенести файлы из Windows на сервер vsFTPd, работающий в Linux. Я могу успешно перенести файлы в домашний каталог, но при изменении каталога я получаю сообщение об ошибке. Ниже приведена стенограмма, демонстрирующая проблему.

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.

1 ответ1

1

У SELINUX была старая проблема, которая не позволяла пользователям FTP писать в своих домашних путях.
Насколько я видел, это можно исправить двумя способами:

[1] Отключить selinux (не рекомендуется для производственной среды)

[2] выполните следующую команду как root (предпочтительнее):

setsebool -P ftp_home_dir=1

Редактировать:
Можете ли вы убедиться, что write_enable=YES добавлено в /etc/vsftpd/vsftpd.conf?

Изменить 2:
Я подумал о некоторых других вещах, которые могут быть проблемой, но довольно легко проверить:
Файл уже существует, но у вас нет прав на его перезапись
Диск заполнен (или квота достигнута)

Кроме того, это может быть странной проблемой umask с переопределением vsftp. Есть ли папки, которые вы создаете 644?
Для пользователя user1, что выводится команда umask ?

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