“500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)【成功完美简单极致】
“500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)【成功完美简单极致】
#自从手机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原创)【成功完美简单极致】的更多相关文章
- vsftpd 服务移植出现 500 oops : socket 解决
一开始, 在vsftpd 打印的错误是 500 oops : socket 在 vsftpd 源码里面找到 buildroot-2016.05/output/build/vsftpd-3.0.3/sy ...
- Linux Deploy 使用 Repository部署Linux系统
Linux Deploy 使用 Repository部署Linux系统 为了解决镜像不稳定导致包下载错误,能得到一个稳定环境,可以使用linux deploy导出功能. 这里提供两个制作好的包 用户名 ...
- java项目 在 linux ubuntu 上的部署相关
--------------------JDK在linux ubuntu上的安装------------------------------------------------------------ ...
- Dell Omsa在Linux服务器上安装部署
前言 本页详述了在一台Linux(RHEL6.4 x86_64)服务器上部署安装OMSA的通用做法,包括OMSA软件的获取方法和安装步骤. 演示环境: PowerEdge R620, RHEL 6.4 ...
- linux系统上项目部署
步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经 ...
- linux rz上传文件及出错解决方案
在把Windows上的文件传至Linux端时用到SecureCRT,一般小文件都没有问题,文件太大时则出现了上传后的文件只有几K大小,当然大于2个G的是不可能传的上去的了.对于几百M到1G多的大文件要 ...
- 安装Linux Deploy和Termux之后,再安装ftp服务软件都是多余的!
之前以为Debian 9 running via Linux Deploy或者Termux在安卓系统部署之后,一定要安装vsftpd或者pure-ftpd这些专门的ftp服务器软件,才能提供ftp服务 ...
- 在Linux系统上查看Apache服务器的错误日志
错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不 ...
- 在你的andorid设备上运行netcore (Linux Deploy)
最近注意到.net core 的新版本已经开始支持ARM 平台的CPU, 特意去Linux Deploy 中尝试了一下,真的可以运行 Welcome to Ubuntu 16.04 LTS (GNU/ ...
随机推荐
- Nessus破解没有Scan选项的解决办法
如图,安装之后无Scan选项,流程按照吾爱破解上的文章:https://www.52pojie.cn/thread-1140341-1-1.html 解决办法为: 首先nessus.license在安 ...
- Leetcode学习笔记(2)
题目1 ID面试题 01.04 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. 示例 ...
- 手写Json解析器学习心得
一. 介绍 一周前,老同学阿立给我转了一篇知乎回答,答主说检验一门语言是否掌握的标准是实现一个Json解析器,网易游戏过去的Python入门培训作业之一就是五天时间实现一个Json解析器. 知乎回答- ...
- Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
Object.defineProperty无法监控到数组下标的变化,导致通过数组下标添加元素,不能实时响应: Object.defineProperty只能劫持对象的属性,从而需要对每个对象,每个属性 ...
- 条件循环语句组成了Python代码的骨架
条件控制 我们都知道流程图是有多个分支的,程序中也是如此,在Python中是用if语句来判断程序该走哪个分支的.它的执行过程如下: 代码执行过程如下: if if语句的一般形式如下: if condi ...
- jvm 模型
- 手写线程池,对照学习ThreadPoolExecutor线程池实现原理!
作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...
- SpringBoot+Redis相关配置文件
springboot整合redis配置类 package com.yalong.config; import com.fasterxml.jackson.annotation.JsonAutoDete ...
- gitlab+jenkins 持续部署自动化测试
背景:为了减少测试部署时间和减少不必要的重复工作,采用持续集成的方式进行部署,当gitlab的release (测试)分支有代码变动时,自动拉取代码部署测试环境,并进行接口回归测试 优点:部署自动化, ...
- JavaSE08-ArrayList
1.ArrayList类概述 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 ArrayList集合的特点 底层是数组实现的,长度可以变化 泛型的使用 用于约束集合中存储元素的 ...