嵌入式Linux的FTP服务端软件(stupi…
2019-07-12 14:20发布
生成海报
作者:gzshun. 原创作品,转载请标明出处!
来源:http://blog.csdn.net/gzshun
在嵌入式Linux系统中,有时候需要搭建一个ftp服务器,以便windows或linux系统去访问嵌入式linux系统的数据。现在流行的ftp和vsftpd软件相对比较大,在嵌入式Linux系统下不太合适。最近由于需要,发现了一款很小型的ftp服务器,在这里分享。
stupid-ftpd 点击下载
根据自己的需要,修改Makefile,将gcc修改为交叉工具链的gcc,比如mips-gnu-linux-gcc。
若要静态编译,在CFLAGS后面添加"-static"选项。
以下的Makefile已经修改:
[plain] view
plaincopy
-
#
-
#
-
# Makefile for the linux version of stupid-ftpd
-
#
-
#
-
#
-
-
-
CC=mips-linux-gnu-gcc -EL #修改
-
OBJS=ftpcommand.o ftpdconfig.o command.o ls.o stupid-ftpd.o
-
DOBJS=ftpcommand.do ftpdconfig.do command.do ls.do stupid-ftpd.do
-
POBJS=ftpcommand.po ftpdconfig.po command.po ls.po stupid-ftpd.po
-
LIBS=
-
CFLAGS=-O2 -Wall -Wstrict-prototypes -static #修改
-
DCFLAGS=-g -DDEBUG -Wall -Wstrict-prototypes
-
PCFLAGS=-g -DDEBUG -Wall -Wstrict-prototypes -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs
-
EXEC=stupid-ftpd.Linux6
-
-
.SUFFIXES: .c .o .do .po
-
-
all: $(OBJS)
-
$(CC) $(CFLAGS) -o $(EXEC) $(OBJS) $(LIBS)
-
-
debug: $(DOBJS)
-
$(CC) $(DCFLAGS) -o $(EXEC) $(DOBJS) $(LIBS)
-
-
pedantic: $(POBJS)
-
$(CC) $(PCFLAGS) -o $(EXEC) $(POBJS) $(LIBS)
-
-
clean:
-
rm -f $(OBJS) $(DOBJS) $(POBJS) $(EXEC) *~
-
-
.c.o:
-
$(CC) $(CFLAGS) -c -o $@ $<
-
-
.c.do:
-
$(CC) $(DCFLAGS) -c -o $@ $<
-
-
.c.po:
-
$(CC) $(PCFLAGS) -c -o $@ $<
-
-
install:
-
install -m 755 -s ./stupid-ftpd /usr/local/bin/stupid-ftpd
-
install -m 700 -d /etc/stupid-ftpd
-
install -m 755 -d /usr/local/stupid-ftpd
-
install -m 600 ./stupid-ftpd.conf /etc/stupid-ftpd/stupid-ftpd.conf
只需修改两个位置。
编译完成后,生成stupid-ftpd.Linux6可执行程序,该程序运行需要配置文件,以下的配置已经被修改并验证,是可以用的。但前提是运行在嵌入式Linux系统下,21端口没有被占用。
[plain] view
plaincopy
-
#
-
# This is a config-file for stupid-ftpd
-
# ------------------------------------
-
#
-
# The standard path should be /etc/stupid-ftpd.conf
-
# You can define other paths by using the "-f" option
-
# when starting stupid-ftpd.
-
#
-
#
-
# ATTENTION: 1) Remember, that the server is running with YOUR permissions.
-
# It will fail to access other users directory, unless it is
-
# root, but it also allows to access ALL YOUR directories,
-
# which are deeper in a user's root-dir and YOU HAVE access to.
-
# 2) To solve the problem, the best way is to define a group-ID
-
# for stupid-ftpd.
-
# Or if you aren't root: set the MAIN root (serverroot=) to
-
# the highest directory depth which is possible.
-
# 3) REMEMBER: DO NOT PUT THIS FILE in an accessible directory!!!
-
# There are passwords defined here. The safest place is
-
# outside the serverroot.
-
-
-
# Server operation mode:
-
# daemon - quiet in background
-
# interactive - standard mode
-
-
#mode=interactive #交互式的形式运行
-
mode=daemon #以守护进程的形式运行在后台
-
-
# chroot to
-
-
#serverroot=/usr/home/cinek/tmp3/aaa
-
serverroot=/mnt #将ftp的根目录设置为/mnt目录下,在windows打开该ftp,就能访问/mnt目录
-
-
# type of chroot
-
# real - kernel chroot(), high security, but needs root privileges
-
# virtual - no real chroot(), software side (virtual) chroot
-
-
#changeroottype=real
-
changeroottype=virtual
-
-
-
# Port number for the FTP-Protocol
-
-
#port=2121
-
port=21 #默认为ftp的端口号。
-
-
-
# Maximum users allowed to log in
-
-
maxusers=10
-
-
-
# Message Of The Day (motd)
-
# It will be displayed after the login procedure.
-
-
#motd=/tmp/stupid-ftpd.motd
-
-
-
# Message on quit
-
# It will be displayed when quitting.
-
-
#byemsg=/tmp/stupid-ftpd.bye
-
-
-
# Log
-
-
#log=/tmp/stupid-ftpd.log
-
-
-
# User list:
-
# Format: user=
-
# user name
-
# password or * for anonymous access
-
# (internally appended to serverroot)
-
# the user has access to the WHOLE SUBTREE,
-
# if the server has access to it
-
# maximal logins with this usertype
-
# D - download
-
# U - upload + making directories
-
# O - overwrite existing files
-
# M - allows multiple logins
-
# E - allows erase operations
-
# A - allows EVERYTHING(!)
-
#
-
# user ftp is mapped to user anonymous, don't forget this
-
#
-
# Examples:
-
# user=user1 passx /tmp 2 D
-
# - login: user1, passwd: passx, max login twice (different IPs!)
-
# only download rights from directory /tmp
-
# user=user2 passy /home/user2 0 DU
-
# - login: user2, passwd: passy, no login count limit (different IPs!)
-
# download+upload rights to directory /home/user2
-
# user=user3 passz /home/user3 5 DUOM
-
# - login: user3, passwd: passz, max login count 5 (even from same IP)
-
# download+upload+overwrite rights to directory /home/user3
-
# user=user4 passq /tmp 10 -
-
# - login: user4, passwd: passq, max login count 10 (even from same IP)
-
# look-only rights at directory /tmp
-
#
-
# SEE: ATTENTION remark on the top of this file !!!
-
-
user=anonymous * / 5 A
-
-
-
# Banned hosts
-
# "*" and "?" are allowed here
-
-
#ban=192.168.*
-
#ban=localhost
-
#ban=*.banme.com
-
<
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮