centos 搭建ftp服务器

项目上需要用到ftp文件服务同步,所以在测试环境进行搭建,其中遇到了一些问题,遂记录。

1、安装vsftpd软件包

打开终端并输入以下命令来安装vsftpd

bash 复制代码
yum install vsftpd -y

2、运行vsftpd

bash 复制代码
systemctl start vsftpd

3、测试匿名连接

我这里用的工具是MobaXterm

点击OK,然后弹出输入密码,直接点 OK,即可。如果一切正常则会登录成功。

这个pub目录就是默认的ftp文件服务器的目录了,真实地址是在/var/ftp目录下:

bash 复制代码
ls -l /var/ftp 

4、配置vsftpd

编辑/etc/vsftpd/vsftpd.conf文件,使用任何文本编辑器打开该文件:

bash 复制代码
vim /etc/vsftpd/vsftpd.conf

修改配置参数。根据需要对以下参数进行调整或取消注释:

bash 复制代码
anonymous_enable=NO: 关闭匿名登录功能;

local_enable=YES: 允许本地用户登录;

write_enable=YES: 允许写入文件;

local_root=/data/nas: 配置ftp目录;

chroot_local_user=YES: 限制用户只能访问其主目录;

重启vsftpd服务

bash 复制代码
systemctl restart vsftpd

此时再用anonymous登录就会提示:530 Please login with USER and PASS.

5、添加FTP用户

创建一个系统用户,并为其分配FTP目录

bash 复制代码
useradd ftpuser
# useradd ftpuser -s /sbin/nologin #添加一个名为ftpuser的账户用于登陆ftp
passwd ftpuser
mkdir /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser

6、使用新用户密码登录

7、常见问题

vsftpd目录限制chroot(用户隔离)500错误分析以及解决方案-阿里云开发者社区

1)chroot_list文件不存在

500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

由于vsftpd默认没有chroot_list文件,故而登录失败,创建一下文件:

touch /etc/vsftpd/chroot_list

再尝试登录

2)安全问题

500 OOPS: vsftpd: refusing to run with weitable root inside chroot()

这是因为,为了避免一个安全漏洞,从vsftpd 2.3.5 开始,chroot目录必须不可写,否则用户不能登录

若要解决该问题,可以新增一条参数:

allow_writeable_chroot=YES

相关推荐
hakesashou34 分钟前
python如何比较字符串
linux·开发语言·python
Ljubim.te42 分钟前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20091 小时前
Linux性能调优技巧
linux
长天一色1 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
醉颜凉1 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
QMCY_jason2 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
慕雪华年2 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
苦逼IT运维2 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
前端张三2 小时前
Mac 电脑pink 后端ip地址进行本地联调
服务器·tcp/ip·macos
第六五2 小时前
ubuntu命令行连接wifi
服务器·ubuntu