首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >i.MX283开发板移植FTP

i.MX283开发板移植FTP

作者头像
知否知否应是绿肥红瘦
发布2025-02-19 21:22:36
发布2025-02-19 21:22:36
13300
代码可运行
举报
文章被收录于专栏:Linux知识Linux知识
运行总次数:0
代码可运行

一、下载vsftp源码

vsftp下载 目前是最新的3.0.3版本——vsftpd-3.0.3.tar.gz 拷贝到Linux下解压,进入源码目录

二、编译

代码语言:javascript
代码运行次数:0
运行
复制
vim MakeFile
修改编译器为交叉编译器
修改编译器为交叉编译器
代码语言:javascript
代码运行次数:0
运行
复制
make

编译完成之后,我们只需要两个文件vsftpd和vsftpd.conf

代码语言:javascript
代码运行次数:0
运行
复制
chmod +x vsftpd 
cp vsftpd /bin
cp vsftpd.conf /etc

三、修改配置文件

代码语言:javascript
代码运行次数:0
运行
复制
vim /etc/vsftpd.conf
\color{red}{匿名模式}

anonymous_enable=YES local_enable=NO write_enable=YES anon_upload_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES listen=YES

代码语言:javascript
代码运行次数:0
运行
复制
adduser nobody
mkdir -p /usr/share/empty/  
mkdir -p /var/ftp/
adduser -h /var/ftp ftp

FTP默认需要一个nobody用户 FTP默认需要一个empty目录 FTP匿名模式默认需要一个FTP用户 -h 限定ftp用户的工作目录为/var/ftp 注意:一旦限定了ftp用户的工作目录,该目录不能具有写权限,否则会报错,这个后面会说明。比如上面的/var/ftp,ftp目录不能具有写权限。chmod a-w /var/ftp去除用户主目录的写权限

\color{red}{本地用户模式}

anonymous_enable=NO local_enable=YES write_enable=YES listen=YES

代码语言:javascript
代码运行次数:0
运行
复制
adduser nobody
mkdir -p /usr/share/empty/  

FTP默认需要一个nobody用户 FTP默认需要一个empty目录 这里没有指定nobody用户的工作目录,它默认为/home/nobody,可以在/etc/passwd 里面查看

四、启动FTP服务

代码语言:javascript
代码运行次数:0
运行
复制
vsftpd &

注意后面一定要加上&,将FTP服务放到后台运行,否则它是会阻塞控制台的。

\color{red}{匿名模式}

匿名模式下,用户名为anonymous,密码输入1~65536之间任意数字即可,ftp不对密码字段作检查,这也就是匿名模式的由来。

代码语言:javascript
代码运行次数:0
运行
复制
浏览器地址栏输入ftp://192.168.0.100/  改为你的IP
在这里插入图片描述
在这里插入图片描述

匿名模式下是没有写的权限。

\color{red}{本地用户模式}

为了方便测试,我们新建一个vsftp的账户,账户的主目录设置为根目录

代码语言:javascript
代码运行次数:0
运行
复制
adduser vsftp -h /

浏览器地址栏输入下面的地址:(账号vsftp ,密码add账户的时候会设置)

代码语言:javascript
代码运行次数:0
运行
复制
ftp://192.168.0.100/
在这里插入图片描述
在这里插入图片描述

此时,若用匿名模式是登陆不上去的。

五、错误解决

warning: `vsftpd’ uses 32-bit capabilities (legacy support in use)

出现的这个警告,是因为没有移植并使用libcap所导致的,但不影响使用。

响应: 500 OOPS: vsftpd: cannot locate user specified in ‘ftp_username’:ftp

配置文件在调用默认匿名用户anonymous时会去找ftp这个系统用户,但是ftp这个系统用户又不存在(可能被删除了) 找到: anonymous_enable=YES 修改为: anonymous_enable=NO 重新启动vsftpd使配置生效

响应: 500 OOPS: vsftpd: both local and anonymous access disabled!

匿名登陆和本地用户登陆都被禁止了。开启其中一个即可。 anonymous_enable=NO local_enable=YES //禁止匿名登陆 使能本地用户登陆

响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

响应: 500 OOPS: cannot locate user entry:nobody

没有添加nobody账户,这个是FTP服务必须的账户

500 OOPS: could not bind listening IPv4 socket

/etc/vsftpd.conf 中修改listen=yes 使用独立模式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、下载vsftp源码
  • 二、编译
  • 三、修改配置文件
  • 四、启动FTP服务
  • 五、错误解决
    • warning: `vsftpd’ uses 32-bit capabilities (legacy support in use)
    • 响应: 500 OOPS: vsftpd: cannot locate user specified in ‘ftp_username’:ftp
    • 响应: 500 OOPS: vsftpd: both local and anonymous access disabled!
    • 响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    • 响应: 500 OOPS: cannot locate user entry:nobody
    • 500 OOPS: could not bind listening IPv4 socket
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档