我已在 Amazon EC2 上设置了vsftpd
Amazon Linux AMI。我创建了一个用户,现在可以通过 ftp 成功连接。但是,如果我尝试上传某些内容,则会收到错误消息
553 Could not create file.
我认为这与权限有关,但我对此了解不够,无法修复它。基本上,我需要做什么才能上传文件?
答案1
你能试试这个吗
chown -R ftpusername /var/www/html
答案2
发生这种情况的可能原因有两个:您对指向您尝试上传到的目录的目录没有写入和执行权限,或者vsftpd
配置为不允许您上传。
在前一种情况下,请根据需要使用chmod
和chown
来确保您的用户对每个中间目录都具有这些权限。写入位允许受影响的用户创建、重命名或删除目录中的文件,以及修改目录的属性,而读取位允许受影响的用户列出目录中的文件。由于路径中的中间目录也会影响这一点,因此必须适当设置权限才能到达您要上传到的最终目的地。
在后一种情况下,请查看您的vsftpd.conf
.write_enable
必须为 true 才能允许写入(默认情况下为 false)。在 上有关于此配置文件的良好文档man 5 vsftpd.conf
。
答案3
该命令ftp put /path/to/local_file
不适用于vsftpd
.请尝试以下操作:
ftp put /path/to/local_file remote_file_name
您可以选择任何您想要的名称remote_file_name
,但必须指定一个名称。
答案4
FTP 主目录 (ftp_home_dir) 很可能在 SeLinux 中被关闭。要查看控制文件的状态ftpd
,请发出:getsebool -a
并找到 ftpd 部分。您可能会注意到 ftp_home_dir 已关闭。要打开它,请使用以下命令:setsebool -P ftp_home_dir=1
使用 验证您的输入getsebool -a
,然后再次尝试上传。
注意:忽略标点符号