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 后即可正常访问。
Read The Fucking Source Code