热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

arm-linux下vsftpd的安装和配置

1.下载源码包:vsftpd-2.3.4.tar.gz2.修改Makefile文件CC/usr/local/arm/arm-2009q1/bin/arm-none-linux-gnueabi-gcc3.执行make,如果报错执行44.修改vsffindlibs.sh屏蔽掉505154行:#Lookforlibcap(c
1.下载源码包:vsftpd-2.3.4.tar.gz
2.修改Makefile文件
CC     =    /usr/local/arm/arm-2009q1/bin/arm-none-linux-gnueabi-gcc
3.执行make,如果报错执行4
4.修改vsffindlibs.sh
屏蔽掉 50 51 54 行:# Look for libcap (capabilities)
if locate_library /lib/libcap.so.1; then
  echo "/lib/libcap.so.1";
#elif locate_library /lib/libcap.so.2; then
#  echo "/lib/libcap.so.2";
else
  locate_library /usr/lib/libcap.so && echo "-lcap";
#  locate_library /lib/libcap.so && echo "-lcap";
  locate_library /lib64/libcap.so && echo "-lcap";
fi
注:网上有文章说可以把库的路径设置到交叉编译器的库路径下,我没有试过,在此处采取屏蔽的方式。
5.make 成功
6.因为是动态编译,所以需要把动态链接库从编译器的lib下拷贝到跟文件系统的lib目录下

[root@uestc vsftpd-2.3.4]# file vsftpd
vsftpd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped

[root@uestc vsftpd-2.3.4]# arm-none-linux-gnueabi-readelf -d vsftpd

Dynamic section at offset 0x1700c contains 30 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libnsl.so.1]
 0x00000001 (NEEDED)                     Shared library: [libresolv.so.2]
 0x00000001 (NEEDED)                     Shared library: [libutil.so.1]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000c (INIT)                       0x9714
 0x0000000d (FINI)                       0x1ae30
 0x00000019 (INIT_ARRAY)                 0x27000
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x0000001a (FINI_ARRAY)                 0x27004
 0x0000001c (FINI_ARRAYSZ)               4 (bytes)
 0x00000004 (HASH)                       0x8168
 0x00000005 (STRTAB)                     0x8d1c
 0x00000006 (SYMTAB)                     0x84fc
 0x0000000a (STRSZ)                      1196 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x27124
 0x00000002 (PLTRELSZ)                   984 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x933c
 0x00000011 (REL)                        0x932c
 0x00000012 (RELSZ)                      16 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x92cc
 0x6fffffff (VERNEEDNUM)                 3
 0x6ffffff0 (VERSYM)                     0x91c8
 0x00000000 (NULL)                       0x0
把所有的七个共享库拷贝过去

7.把生成的vsftpd 拷贝到跟文件系统的sbin目录下,把vsftpd.conf文件拷贝到 跟文件系统的etc目录下。
至此,arm-linux环境下的ftp服务器移植完成,下面开始对服务器进行配置。以下为一个简单的配置,不考虑安全性。

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_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
nopriv_user=ftp
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
ls_recurse_enable=YES
listen_port=21
anon_other_write_enable=YES

8.在板子上创建必要的帐号,目录:
#addusr nobody   //vsftpd 默认配置需要
#mkdir /usr/share/empty//vsftpd 默认配置需要
#adduser -D /var/ftp ftp
#chown root:root/var/ftp
#chmod og-w /var/ftp
9.创建一个本地账户ming,创建好之后可以用ming登录
#addusr ming
#passwd 123456
10.添加一个只能从ftp登录,而不能从本地的登录的用户mingming
#addusr -G ftp -S /sbin/nologin mingming //-G -S 如果用-g -s 客户将不能登录:530 Login incorrect
#passwd 123456

11.服务器端执行 vsftpd /etc/vsftpd.conf ,客户端执行ftp YOUR_ADDR ,输入帐号名和密码即登入。
12.用cat /etc/passwd cat /etc/group 命令查看

推荐阅读
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 苹果系统频繁弹窗提示无法验证服务器身份?竟是网易邮箱证书过期所致
    近日,众多苹果用户发现iOS、iPadOS和macOS系统频繁弹出无法验证服务器身份的警告。问题根源在于网易邮箱未能及时更新其数字证书,导致原证书过期后无法被信任。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
author-avatar
阿思翠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有