CentOS系统安装vsftpd

下载并安装 vsftpd

apt-get install vsftpd

安装后检查 service vsftpd status

修改配置文件(被动/匿名用户模式)

vi /etc/vsftpd.conf

anonymous_enable=NO

listen=YES

listen_port=21

ascii_upload_enable=YES

ascii_download_enable=YES

local_enable=YES

guest_enable=YES

guest_username=ftp

virtual_use_local_privs=YES

pasv_enable=YES

port_enable=NO

pasv_min_port=28000

pasv_max_port=28999

anon_world_readable_only=NO

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

pam_service_name=vsftpd.vu

user_config_dir=/etc/vsftpd/vsftpd_user_conf

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

allow_writeable_chroot=YES

配置匿名用户的文本文件

mkdir /etc/vsftpd

cd /etc/vsftpd

vi login.txt

输入文本:

ftp

$ftpPassword

注:奇数行账号,偶数行密码

导入用户文本文件到数据库

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

如果没有找到命令db_load,需安装

apt-get install db-util

配置pam_service_name对应文件

首先,全局查找文件pam_userdb.so的路径。

find / -name pam_userdb.so

vi /etc/pam.d/vsftpd.vu

输入以下内容:

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

配置匿名用户的ftp根目录和权限

mkdif /etc/vsftpd/vsftpd_user_conf

vi /etc/vsftpd/vsftpd_user_conf/ftp

注:文件名称要与ftp账号文件中输入的ftp账号一致

输入以下内容:

local_root=/home/terry/store/ftp

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

创建匿名用户,或修改匿名用户根目录

如果账号是ftp,则安装vsftpd时已默认创建了该用户,需要修改用户根目录与上面local_root一致。

vi /etc/passwd

例如:

ftp:x:127:132:ftp daemon,,,:/home/terry/store/ftp:/usr/sbin/nologin

如果是其他账号,则需要新增用户。比如新增账号ftp2,

useradd -d/home/terry/store/ftp2 -s /sbin/nologin ftp2

修改ftp目录的访问权限

chown ftp:ftp /home/terry/store/ftp

chmod 755 /home/terry/store/ftp

配置防火墙

sudo ufw allow 21

sudo ufw allow 28000:28999/tcp

sudo ufw reload

重启vsftpd服务

sudo service vsftpd restart

相关推荐
siriuuus3 分钟前
Linux rsyslog 日志服务及日志转发实践
linux·rsyslog
邂逅星河浪漫3 分钟前
【DockerFile+Nginx+DockerCompose】前后端分离式项目部署(docker容器化方式)
nginx·docker·centos·部署·docker-compose·dockerfile·容器化部署
dawnsky.liu11 分钟前
RHEL - 在离线的 RHEL 10 中部署 Lightspeed 命令行助手
linux·人工智能·ai
promising-w13 分钟前
TYPE-C接口,其实有4种
linux·c语言·开发语言
野熊佩骑17 分钟前
CentOS二进制安装包方式部署K8S集群之系统初始化
运维·docker·微服务·云原生·容器·kubernetes·centos
云道轩28 分钟前
在rocky linux 9.5上安装yq
linux·kubernetes
烦躁的大鼻嘎39 分钟前
【Linux】深入探索多线程编程:从互斥锁到高性能线程池实战
linux·运维·服务器·开发语言·c++·算法·ubuntu
wdfk_prog41 分钟前
`git rm --cached`:如何让文件“脱离”版本控制
大数据·linux·c语言·笔记·git·学习·elasticsearch
霍格沃兹测试开发学社测试人社区1 小时前
Playwright MCP浏览器自动化详解指南
运维·自动化
xuhe21 小时前
告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案
linux·docker·overleaf