标签:debian ffffff 源码 动作 strong socket 重启 部署 解决
#自从手机root后安装Linux Deploy开始安装了Debian9开始准备鼓捣ftp服务器(vsftpd)。
apt install vsftpd
#之后整整一个月百度而来的猛如虎的各种操作各种坑,
#且不说修改vsftpd.conf的各种参数,
#下载源码修改编译,安装gdb调试,通过网络教程禁用子进程改变uid gid的函数,修改源码的secuil.c文件等等,
#用FileZilla连接时候永远都是500 oops socket
#死的心都有了。就差下载源码重新编译内核了,但是我是新手,这么高深的动作怎么会?且不说手机上能说改就改linux内核?老大您就饶了我吧!
#之后,一个命令(strace)拯救了我,把我从gdb的苦海和vsftpd.dbg官方调试包中拖上岸。我这次成功解决问题全赖此命令。
#新手都能好好琢磨出来strace -v -f -s 2048 -p [vsftpd服务的pid],一点一点分析出了问题的眉目。在这里,这个命令我就不赘述,网上详解很多。我现在着重说解决方案:很短,就几步而已
nano /etc/passwd
#找到nobody用户把65534:65534改成65534:3003然后存盘,就完事了。记得把
nano /etc/ftpusers
#里面的“#root”注释掉才能使用root用户,然后为了方便上传删写文件
nano /etc/vsftpd.conf
#里面最后加一行“write_enable=YES”,但是删写文件仍然总是被拒绝。即使重启也无效。我后来按照百度教程,还不得不在/root下创建了一个目录pub目录改属性
chmod 777 /root/pub
#才成功的能开始使用上传和删除操作,然后即使把pub删了,重启等等,都可以正常删写服务器内容了。仿佛只要在vsftpd.conf里写write_enable=YES一行就完事,但是一开始确实是被拒的。不知为什么。
#在这次探究中,我发现nobody用户才是vsftpd发生500 oops socket的关键之所在,而并不是之前网上部分教程所提到的vsftpd没有子进程创建权限,事实上根据下面的调试命令,我发现vsftpd是完全具备子进程创建权限的,而创建出的nobody用户子进程却不具备网络使用权限,所以我才想到了修改nobody的所属组,然后就完美解决了。
#这个命令就是发现上面原因的关键strace -v -f -s 2048 -p [vsftpd服务的pid],有兴趣鼓捣的可以试试。但是输出的内容很长,建议粘贴到word中查看。
“500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)【成功完美简单极致】
标签:debian ffffff 源码 动作 strong socket 重启 部署 解决
原文地址:https://www.cnblogs.com/-fresh/p/10321728.html