嵌入式linux下的FTP服务器配置记录
嵌入式linux FTP服务器
一般嵌入式Linux下的FTP服务器会有什么要求呢?一般来说差不多如下所示
- 账号认证,需要特定用户才能访问(不一定要和登录用户挂钩)
- 根目录固定在一个固定的位置,且不能向上级访问(例如/share)
- 不需要匿名访问(不安全)
- 可能需要配置只读权限
方案选型
busybox自带的ftpd
本来打算考虑使用本身自带的方案的,配置如下
️/etc/inetd.conf
ftp stream tcp nowait root ftpd ftpd -w /share
然后重启设备即可
在网上找ftpd的配置。并没有找到,最后直接看help
ftpd --help
BusyBox v1.24.1 (2020-09-01 09:09:54 UTC) multi-call binary.
Usage: ftpd [-wvS] [-t N] [-T N] [DIR]
Anonymous FTP server
ftpd should be used as an inetd service.
ftpd's line for inetd.conf:
21 stream tcp nowait root ftpd ftpd /files/to/serve
It also can be ran from tcpsvd:
tcpsvd -vE 0.0.0.0 21 ftpd /files/to/serve
-w Allow upload
-v Log errors to stderr. -vv: verbose log
-S Log errors to syslog. -SS: verbose log
-t,-T Idle and absolute timeouts
DIR Change root to this directory
可以发现这是个只支持匿名访问的ftp服务器软件,所以不能满足账号认证的要求
于是换了个方案
vsftpd
可以支持匿名,也可以支持限制目录权限,就它了
vsftpd的移植
官网地址
https://security.appspot.com/vsftpd.html
移植教程
https://blog.csdn.net/liuzhanchun/article/details/102814150
开始移植,移植过程非常简单
从官网下载源码
vsftpd-3.0.3.tar.gz,解压
先配置gcc工具
vim Makefile
# CC = gcc
CC = arm-linux-gnueabihf-gcc
然后make
注意:make之前先检查arm-linux-gnueabihf-gcc在不在path中,没有的话先source
编译通过
将可执行文件vsftpd拷到板子上的/usr/sbin,添加可执行权限
将vsftpd.conf拷到板子上的/etc/
chown root:root /etc/vsftpd.conf
然后运行
vsftpd &
这个时候就可以访问了,但是还不满足需求,然后根据需求修改配置
vsftpd的配置
这里我们需要配置的内容是
#禁止匿名
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#更改登录后的家目录,默认为各用户的家目录
local_root=/home/root
#不能切换到上级目录
chroot_local_user=YES
#限制访问自身目录
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
新增用户
useradd -d /home/ftp1 ftp1 #增加用户ftp1,并制定ftp1用户的主目录为/home/ftp1
passwd ftp1 #为ftp1设置密码
更改权限
usermod -s /sbin/nologin ftp1 #限定用户ftp1不能telnet,只能ftp
usermod -s /sbin/bash ftp1 #用户ftp1恢复正常 #注意这里不一定是/sbin/bash,也可能是/bin/bash,具体用which bash应该可以看到
usermod -d /ftp1 ftp1 #更改用户ftp1的主目录为/ftp1
好了,最后运行一下
vsftpd &
嵌入式linux下的FTP服务器配置记录的更多相关文章
- 嵌入式 Linux下永久生效环境变量bashrc
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...
- linux 下搭建 ftp
最近为了方便目标板与PC机上LINUX之间的通讯,就在LINUX搭建了FTP,工作不难,写个总结.主要经过以下几个步骤: 1.检查是否安装了vsftpd服务器 可以用rpm -q vsftpd命令来查 ...
- Linux下用ftp更新web内容!
使用ftp更新web!让网页更新一次OK! 配置如下: 1.在Linux下安装ftp服务器! yum -y install vsftpd #ftp由vsftpd提供! 2.配置主配置文件/etc/vs ...
- Linux下部署FTP服务器
Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- linux下常用FTP命令
linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...
- 【转】基于Qt, TUIO和TSLIB的嵌入式Linux下的多点触摸设计
这个教程描述了在嵌入式linux下使用Qt如何设置一个支持多点触摸和单点触摸的输入系统.这里假定你已经有了对应的驱动程序,驱动可以从触摸屏的厂商那里获得或者使用一个linux 内核源码中已经存在的驱动 ...
- 如何在linux下开启FTP服务
如何在linux下开启FTP服务 1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下: #which vsftpd 如果看到有vsftpd的目录说明服务器已经安装了ftp软件 2. ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...
随机推荐
- Kubernetes集群巡检内容
1.概述 Kubernetes 集群巡检是一种监测和评估底层系统运行状况的重要手段,旨在快速发现系统中存在的潜在风险并提供修复建议.通过对 Kubernetes(K8s)集群进行定期巡检,可以有效保障 ...
- 刷到一个 MLSQL 语言
在 https://www.infoq.cn/video/2vFUBYfxFcoFWmSm5WOj 刷到一个 MLSQL 语言,主页 https://www.mlsql.tech/home ,意思是用 ...
- Java调用与发布Webservice接口(一)
一 准备工作 (一)开发环境 demo以springboot为基础框架,使用到了httpclient.hutool等依赖,详情如下: springboot版本: org.spri ...
- Spring源码阅读(一):使用IDEA搭建Spring5.0.x源码阅读环境
说明 Spring源码阅读环境配置如下: Spring 5.x版本 Gradle 4.8.1 JDK8 IDEA2020.1 win10 搭建步骤 1. 下载Spring源码 下载地址:Github链 ...
- docker-compose.yml 使用说明
docker-compose.yml 结构 docker-compose.yml文件分为三个主要部分:services.networks.volumes..services主要用来定义各个容器.net ...
- PostgreSQL 数据库的启动与停止管理
title: PostgreSQL 数据库的启动与停止管理 date: 2024/12/28 updated: 2024/12/28 author: cmdragon excerpt: 作为一个强大的 ...
- Pytorch的主要组成模块
Pytorch的主要组成模块 一.基本配置 对于一个PyTorch项目,我们需要导入一些Python常用的包来帮助我们快速实现功能.常见的包有os.numpy等,此外还需要调用PyTorch自身一些模 ...
- vs2017 iisexpress 绑定自定义域名
1.项目根目录找到 项目/.vs/config/applicationhost.config 2.添加绑定域名 <site name="demo" id="2&qu ...
- CDS标准视图:分配到任务清单的维护包数据 I_PckgTaskListOpalLocData
视图名称:分配到任务清单的维护包数据 I_PckgTaskListOpalLocData 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IPCKTLO ...
- 引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常 解决办法
出现题目的异常,多是引用第三方控件引起的. 在NEW时,需要初始化该对象. AxESACTIVEXLib.AxESActiveX ax = new AxESACTIVEXLib.AxESActiveX ...