Centos下vsftp无法上传文件及其它问题总结

vsftp无法上传文件

用SecureCRT远程登录后,我做了如下检查:

①、打开了vsftp配置文件(/etc/vsftpd/vsftpd.conf)检查write_enable状态,发现正常:

[root@VM_72_108_centos /]# cat /etc/vsftpd/vsftpd.conf | grep write_enable
write_enable=YES
#anon_mkdir_write_enable=YES
[root@VM_72_108_centos /]#

②、查看ftp用户是否具备目录的读写权限,发现也是可行的775状态(www组)。

[root@VM_72_108_centos wwwroot]# ll
total 8
drwxrwxr-x 3 www www 4096 Jun 12 12:34 default
drwxrwxr-x 9 www www 4096 Jun 12 14:54 weixin.weightwl.com

③、在命令提示符CMD中使用ftp,可获取到一些explore看不到的报错信息,便于资料搜索:

于是在百度搜索了下如下报错信息:
200 PORT command successful. Consider using PASV.
      425 Failed to establish connection.
 
最终,在一个linux论坛才找到了如下解决办法:
作者说这个问题在Centos上才会出现,Redhat就没有,难怪我在公司都没见过这问题。
解决办法:
①、查看ftp的Selinux状态:sestatus -b | grep ftp
②、在结果中可以看到: ftp_home_dir  off
③、将状态改为on:setsebool -P  ftp_home_dir  on
④、重启vsftp服务:service vsftpd restart
有点纳闷的是,他的服务器根本就没开selinux,所以第②步根本没结果,理论上,这个解决办法应该没效果才对,可实际上,全部执行完成之后,发现可以上传文件和新建文件夹了。我去,还真是诡异,总之解决了问题就好。

张戈额外补充一条VPS常用的新增FTP帐号的命令行,方便定义不同的ftp帐号:

useradd -g www -d /home/www/zhangge.net -s /sbin/nologin username
# -g 表示所属用户组,请根据实际选择
# -d 表示登录后的工作目录,请指定所要指向的网站根目录即可。
# -s /sbin/nologin 表示设定此账号仅用于ftp,不允许登录到系统。
#username 新增的用户名,请自定义。
passwd username
#如上使用passwd 设定ftp用户的密码。

补充:CENTOS6.4 VSFTP无法上传文件的解决方法

方法1、直接关闭selinux,命令:/usr/sbin/setenforce 0;

方法2、在selinux开启的情况下

运行命令(查看ftpd开启的服务):getsebool -a | grep ftp

下图是无法上传文件的情况:allow_ftp_anon_write

时间: 2024-09-12 13:03:11

Centos下vsftp无法上传文件及其它问题总结的相关文章

ftp服务器上传文件-ftp服务器上传没错误,,但ftp服务器相应目录下没有找到上传文件

问题描述 ftp服务器上传没错误,,但ftp服务器相应目录下没有找到上传文件 public void remoteUpload()throws Exception{ FTPClient f = new FTPClient(); f.connect("***.***.***.***", 21); f.login("intf","intf"); System.out.println(f.isConnected()); f.setControlEnco

ftp服务器上传没错误,,但ftp服务器相应目录下没有找到上传文件

问题描述 ftp服务器上传没错误,,但ftp服务器相应目录下没有找到上传文件 public void remoteUpload()throws Exception{ FTPClient f = new FTPClient(); f.connect("***.***.***.***", 21); f.login("intf","intf"); System.out.println(f.isConnected()); f.setControlEnco

httpClient调用c#下的webservices上传文件

问题描述 我在httpclient下,用post把文件转成string,并调用webservices上传,可是一直就进不去,根本没有办法实现,大家有办法吗? 解决方案 解决方案二:自己顶一顶吧,大牛们快出现吧

怎样在DOS下进行FTP上传文件到空间

在WIN XP或windows2003附件中的命令提示符下,输入 C: >FTP 域名(或者IP地址) USER NAME: 管理员帐号 PASSWORD: 口令 FTP>PUT LOCAL file: filename REMOTE file: filename 即可上传 下载时使用GET命令

PHP + jQuery Ajax文件无刷新上传文件

  PHP + jQuery Ajax文件上传实例.因为看到一些朋友询问如何实现PHP环境下的网页上传功能,自己这几天刚用了jQuery_upload_multiple上传插件,所以在这里把用法给大家说一下. 要实现基于这个插件的上传功能,其实挺简单,需要jquery就行了,另外还有一个上传文件时的PHP程序,费话不多说,先看下面的HTML,也就是带有上传表单,让用户选择上传文件的页面: 接下来是上传图片的PHP文件代码:文件名:submit_form_process.php 把hTML代码保存

获取参数-struts2在上传文件时获得请求参数的问题

问题描述 struts2在上传文件时获得请求参数的问题 在struts2中可以通过 Map map = ActionContext.getContext().getParameters(); 来获得表单中的数据信息,但当提交的表单格式为enctype="multipart/form-data",即在上传文件时通过上面的方式却得不到数据,在不在对应action中声明文件字段的情况下,如何获得struts2已经封装好了的文件及其他字段信息. 在struts2中确实会自动用common-fi

spring mvc上传文件,文件上传到webroot下,不要发布到保存tomcat下,求解决,在线等待

问题描述 上传的文件我要保存在WebRoot/resources/uploadfile里面,我不要发布保存在D:apache-tomcat-7.0.53webapps下,怎么解决,老保存到tomcat下呢?怕文件丢失 解决方案 解决方案二:上传的时候你指定路径啊.解决方案三:问题是指定的路径始终是tomcat下的,我不要在tomcat下的解决方案四: 解决方案五:引用3楼rui888的回复:恩,这是绝对写死的路径,也是一个方法,但不灵活解决方案六:那你就代码写路径.解决方案七:引用5楼rui88

uploadify上传文件火狐浏览器下丢失session

问题描述 uploadify上传文件火狐浏览器下丢失session查了很多资料都不好用 解决方案 http://blog.csdn.net/longxia1987/article/details/8461427,把seesionid传过去试试.解决方案二:uploadify的session是独立的,就是说和你页面的session不是同一个.解决方案三:传JSESSIONID试试!解决方案四:只能把session 传过去.当参数传过去

struts 2 文件上传-struts 2 上传文件时,怎么样让它的默认路径是WebRoot工程下的目录

问题描述 struts 2 上传文件时,怎么样让它的默认路径是WebRoot工程下的目录 在struts2框架中使用文件上传,在 Action 的处理上传的业务方法中将临时文件中的数据保存到指定路径的文件中,我需要保存到项目的WebRoot目录下的upload文件夹中 用 String filePath=ServletActionContext.getServletContext().getRealPath("/upload/")+uploadFileName 指定文件的保存目录. 输