搭建一个ftp服务器。我使用ubuntu 10.04操作系统。下载vsftpdy源代码。
进行了编译。安装。然后按照INSTALL文件。创建了用户等操作。
因为时间比较紧。我采用匿名用户。进行文件的上传测试。修改了/etc/vsftpd.conf文件。
将默认注释不让匿名用户上传文件的注释去掉。然后保存。然后杀死vsftpd进程。然后重新运行
$ sudo vsftpd &
进行ftp服务器的启动。
使用一个客户端。可以正常的连接。但是当上传文件时。总是报553 Could not create file错误信息。
我也是按照网上的做法。对/var/ftp目录进行权限设置。如果设置为chmod -R 777 /var/ftp
还会导致ftp服务器不能启动。经过摸索。终于找到了解决的方法。
首先在ftp的目录中创建一个目录。然后设置权限为777
$ sudo mkdir /var/ftp/write
$sudo chmod -R 777 /var/ftp/write
然后修改vsftp的配置文件/etc/vsftpd.conf文件
在最后添加上
local_root=/var/ftp
保存。然后杀死vsftpd进程。然后重启vsftpd服务器程序。
试试看。将文件上传到write目录。这个时候可以正常的上传文件了。
加下来我们再来看一篇其他网友的解决方法:
首先。要看你是用什么用户上传了。如果是普通用户的话:
1.要确定目标文件夹有没有读写的权限。(当然也要有执行的权限,不然不能打开文件夹)
2如果都有了。那就是selinux限制了。把selinux关掉就可以了。(setenforce 0)
如果是anonymous用户的话:
和上面一样。关掉selinux。再给予相应的权限就可以解决
我这里要说一种不关掉selinux的解决方法
先运行getsebool -a | grep ftp (查看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_write allow_ftpd_full_access 这两个ON掉
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
这样子就OK了。如果出现
500 OOPS: vsftpd: refusing to run with writable anonymous root
500 OOPS: priv_sock_get_cmd
就是你把VSFTPD的根目录给了777的权限了。把它改成755。然后再在这个目录里建文件夹。可以给777的权限!
本文地址:https://gpu.xuandashi.com/41514.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!