1. 程式人生 > >“500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解決方案(201901原創)【成功完美簡單極致】

“500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解決方案(201901原創)【成功完美簡單極致】

mod install 等等 sta 教程 debian 9 run 原創 linux

“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原創)【成功完美簡單極致】