在 CentOS 7 上使用 vsftpd 搭建 FTP 服务器
准备工作:
- 系统需为 CentOS 7
- 需要具备根用户或 sudo 权限
第 1 步:安装 vsftpd 和 FTP 客户端
- 更新系统包(可选,但推荐):
sudo yum update
- 安装 vsftpd:
sudo yum install vsftpd
- 安装 FTP 客户端(可选):
sudo yum install ftp
第 2 步:配置 vsftpd
- 备份原始配置文件(非常重要):
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
- 编辑配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
在文件中,用以下内容替换全部内容:
# 基本的 vsftpd 配置 anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list allow_writeable_chroot=YES user_sub_token=$USER local_root=/data/ftpdata/$USER
- 限制用户到指定目录:
为此,您需要在vsftpd
配置文件中添加以下行:user_sub_token=$USER local_root=/data/ftpdata/$USER
这将确保用户登录时被限制在
/data/ftpdata/ftpuser0
目录中。
第 3 步:解决 vsftpd
错误
如果出现错误 “500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list”,执行以下操作:
创建和配置 chroot 列表文件
- 创建 chroot 列表文件:
sudo touch /etc/vsftpd.chroot_list
- 设置正确的权限:
sudo chmod 644 /etc/vsftpd.chroot_list
- 添加例外用户(如果有):
如有不需限制的用户,将它们添加到此文件中,每行一个用户名。
第 4 步:创建 FTP 用户和目录
- 创建用户(如
ftpuser0
):sudo adduser ftpuser0 sudo passwd ftpuser0
然后输入密码(例如
KS12YK
)。 - 创建和设置 FTP 目录:
sudo mkdir -p /data/ftpdata/ftpuser0sudo chown -R ftpuser0:ftpuser0 /data/ftpdata/ftpuser0sudo chmod -R 755 /data/ftpdata
第 5 步:配置防火墙
如果启用了防火墙,需要允许 FTP 流量:
sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
sudo firewall-cmd --zone=public --add-service=ftp --permanent
sudo firewall-cmd --reload
第 6 步:启动和启用 vsftpd 服务
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
第 7 步:测试 FTP 访问
通过在本地机器上使用 FTP 客户端测试访问:
ftp <服务器IP地址>
然后使用用户名 ftpuser0
和密码登录。
完成
现在,您应该有一个在 CentOS 7 上运行的基本 FTP 服务器,用户 ftpuser0
被限制
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/181536.html