vsftpd 服务移植出现 500 oops : socket 解决

  • 一开始, 在vsftpd 打印的错误是 500 oops : socket

  • 在 vsftpd 源码里面找到 buildroot-2016.05/output/build/vsftpd-3.0.3/sysutil.c 文件里面有相关错误打印。

  • 然后我将相关错误码打印出来:


* #### 发现是 13 号错误,没有访问权限,EACCES
  • 仔细对比客户的文件系统和我们的文件系统的区别,发现基本上是一致的。

  • 最后用kernel 4.4.12 去跑我们系统,发现竟然能通过,基本上确认是kernel的问题。

  • 最后实在是没有办法,看一下是哪里会返回 EACCES, 然后就在 kernel 源码的 net 目录下用 grep EACCES * -R 去查找哪里会返回这个错误


* #### 最后修改了 kernel3.2.0/net/ipv4/af_inet.c
  • 里面的相关返回 -EACCES 代码,把这段代码注释以后然后重新运行 vsftpd 后即可正常访问。

posted @ 2017-05-27 14:20  陈富林  阅读(2604)  评论(1编辑  收藏  举报