设为首页 收藏本站
查看: 1325|回复: 0

[经验分享] Remote System Explorer之FTP移植(vsftpd)

[复制链接]

尚未签到

发表于 2016-6-9 09:42:08 | 显示全部楼层 |阅读模式
  Remote System Explorer之FTP移植
   openssh自带Sftp Server,但移植到开发板上时无法启动,所以只能移植其他的FTP服务器,经过一番搜索后确定使用vsftpd。
   vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,特点是小巧轻快,安全易用。它还可以移植到嵌入式Linux中,我们可以把开发板当作一个FTP服务器。
  
  编译vsftpd程序
1. 获得源码包:vsftpd-2.1.2.tar.gz

  2. 解压,进入源码目录:
tar xzvf vsftpd-2.1.2.tar.gz
cd vsftpd-2.1.2
3. 修改Makefile,指定交叉编译器:
CC = arm-linux-gcc
4. make
编译时会出现错误,跟libcap.so有关
修改vsf_findlibs.sh:
45-53行注释掉:

  修改配置文件vsftpd.conf
需要用到哪一项,就把这一项前面的注释‘#’去掉,这里给出一个示例:
anonymous_enable=YES
no_anon_password=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
ls_recurse_enable=YES
listen=YES
listen_port=21
把修改后的vsftpd.conf文件放到根文件系统的/etc/vsftpd目录下,否则运行里会出错:500 OOPS vsftpd: cannot open config

创建必要的帐号、目录
1. 建立FTP目录:
mkdir -p /var/ftp/pub

因为ftp目录不能开启所有权限,所以建一个pub目录加上所有权限,用来传输文件
mkdir -p /usr/share/empty
程序运行所用到的目录

  2. 改变目录权限
chown root:root /var/ftp
chmod 755 /var/ftp
cd /var/ftp
chmod 777 pub
3. 添加帐号(如果系统中有,就不用添加)
useradd nobody
useradd -d /var/ftp ftp

  在开发板上运行vsftpd
把制作好的文件系统下载到开发板上,在后台运行程序:
vsftpd /etc/vsftpd/vsftpd.conf&
也可以把它写入启动脚本,vsftpd后面的参数就是要使用的配置文件

  注意:如果以vsftpd &这种方式来启动vsftpd ,vsftpd 使用的是默认配置文件,而不是/etc/vsftpd/vsftpd.conf,切记!
  
程序运行后可能出会现错误:
500 OOPS: could not bind listening IPv4 socket
解决方法:
1. 复制vsftpd源码目录下的xinetd.d文件夹到文件系统/etc目录下,里面有一个文件vsftpd,修改其内容:disable = yes。
2. 可能是已经启动了vsftpd,端口已被占用,再次启动vsftpd就会报错,可以先杀死vsftpd进程,再启动。

  连接
  之后便可在DS-5中创建FTP连接。
  
  附上openssh的编译过程,今后会一直留心openssh Sftp Server的移植或其他Sftp Server的移植。
  libz前面已经编译过了,下边列出openssl和openssh的编译过程。
  编译openssl:
tar zxvf openssl-1.0.0.tar.gz
cd openssl-1.0.0
./Configure --prefix=~/sftp/pack/openssl os/compiler:/usr/local/arm/3.4.1/bin/arm-linux-gcc
make;make install

  编译openssh:
tar zxvf openssh-5.3p1.tar.gz
cd openssh-5.3p1/
./configure --host=arm-linux --prefix=/home/phil/sftp/pack/openssh --disable-strip --with-libs --with-zlib=/home/phil/sftp/pack/zlib --with-ssl-dir=/home/phil/sftp/pack/openssl --disable-etc-default-login CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar
make
不要make install

  注意:1)因为openssh链接的是zlib动态库,所以编译zlib时要加--shared

2)--with-zlib必须用绝对路径,--prefix有的可以用~,但openssh要求--prefix必须用绝对路径

  安装

(1) 将 openssh-5.5p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下

(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin目录下

copy sftp-server ssh-keysign 到/usr/local/libexec

(3) 在目标板下:

mkdir -p /usr/local/etc/
然后将openssh下的sshd_config,ssh_config 拷贝到该目录下

   mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(4)在主机上:
ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
将生存的 ssh_host_* 4个文件copy到目标板的 /usr/local/etc/目录下
(5) 添加用户:
将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh
其实可以删除不需要的一些用户。
这一步也可以这样,在目标板的passwd中添加sshd用户:
sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
在shadow中也添加对应的项就行了:
sshd:!:14069:0:99999:7:::
测试
sshd在开发板上能启动,通过DS-5也能连接上,但:Sftp Server在开发板上启动时没有反应。通过PS查看进程,没有找到相应的进程,这个

  问题先留着,慢慢解决!!!
  欢迎讨论交流。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-228098-1-1.html 上篇帖子: 在自己的电脑架设FTP服务 下篇帖子: 通过JSCH 实现FTP各种操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表