更改目录时出现 FTP 错误

更改目录时出现 FTP 错误

我正在尝试将文件从 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

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

相关内容