vsftp上传553 Could not create file错误解决
搭建一个ftp服务器,我使用ubuntu10.04操作系统,下载vsftpdy源代码,
进行了编译,安装,然后按照INSTALL文件,创建了用户等操作。
因为时间比较紧,我采用匿名用户,进行文件的上传测试。修改了/etc/vsftpd.conf文件,
将默认注释不让匿名用户上传文件的注释去掉,然后保存,然后杀死vsftpd进程,然后重新运行
$sudovsftpd&
进行ftp服务器的启动。
使用一个客户端,可以正常的连接,但是当上传文件时,总是报553Couldnotcreatefile错误信息。
我也是按照网上的做法,对/var/ftp目录进行权限设置,如果设置为chmod-R777/var/ftp
还会导致ftp服务器不能启动,经过摸索,终于找到了解决的方法。
首先在ftp的目录中创建一个目录,然后设置权限为777
$sudomkdir/var/ftp/write
$sudochmod-R777/var/ftp/write
然后修改vsftp的配置文件/etc/vsftpd.conf文件
在最后添加上
local_root=/var/ftp
保存,然后杀死vsftpd进程,然后重启vsftpd服务器程序。
试试看,将文件上传到write目录,这个时候可以正常的上传文件了。
加下来我们再来看一篇其他网友的解决方法:
首先,要看你是用什么用户上传了,如果是普通用户的话:
1.要确定目标文件夹有没有读写的权限,(当然也要有执行的权限,不然不能打开文件夹)
2如果都有了,那就是selinux限制了,把selinux关掉就可以了。(setenforce0)
如果是anonymous用户的话:
和上面一样,关掉selinux,再给予相应的权限就可以解决
我这里要说一种不关掉selinux的解决方法
先运行getsebool-a|grepftp(查看selinux里有哪些关于ftp的)
allow_ftpd_anon_write-->off
allow_ftpd_full_access-->off
allow_ftpd_use_cifs-->off
allow_ftpd_use_nfs-->off
ftp_home_dir-->off
ftpd_connect_db-->off
httpd_enable_ftp_server-->off
sftpd_anon_write-->off
sftpd_enable_homedirs-->off
sftpd_full_access-->off
sftpd_write_ssh_home-->off
tftp_anon_write-->off
接下来我们allow_ftpd_anon_writeallow_ftpd_full_access这两个ON掉
setsebool-Pallow_ftpd_anon_writeon
setsebool-Pallow_ftpd_full_accesson
这样子就OK了,如果出现
500OOPS:vsftpd:refusingtorunwithwritableanonymousroot
500OOPS:priv_sock_get_cmd
就是你把VSFTPD的根目录给了777的权限了,把它改成755,然后再在这个目录里建文件夹,可以给777的权限!