vsftpd服务器配置虚拟用户的方法(不使用mysql)

发布时间:2019-09-03编辑:脚本学堂
本文介绍下,在vsftpd服务器中配置虚拟用户的方法,这里介绍的方法不需要mysql数据库存储用户信息,有需要的朋友参考下,希望对大家有一定的帮助。

本节内容:
vsftpd服务器虚拟用户配置

系统环境: centos 5.2 x86_64
FTP服务端:vsftpd

直接yum安装:

# 通过yum直接在线装vsftpd(rpm版本)
 

复制代码 代码示例:
yum -y install vsftpd

# 创建系统用户的列表,一行一个
 

复制代码 代码示例:
touch /etc/vsftpd/vsftpd.chroot_list

# 创建vsftp的日志文件
 

复制代码 代码示例:
touch /var/log/vsftpd.log

# 创建虚拟用户的配置文件路径目录
 

复制代码 代码示例:
mkdir /etc/vsftpd/user_config

# 创建vsftp的系统用户 (假设站点目录在/www/wwwroot/ftpd)
 

复制代码 代码示例:
useradd ftpd -d /www/wwwroot/ftpd -s /sbin/nologin

# 把vsftp的系统用户写入vsftpd.chroot_list
 

复制代码 代码示例:
echo 'ftpd' >> /etc/vsftpd/vsftpd.chroot_list

# 准备工作, 创建passwd.txt, 单行为用户名, 双行为密码
 

复制代码 代码示例:
touch /etc/vsftpd/passwd.txt
例如:
ftp1
123456
ftp2
456789

# 创建虚拟用户密码认证的数据库文件
 

复制代码 代码示例:
db_load -T -t hash -f passwd.txt /etc/vsftpd/user_passwd.db

# 如果提示找不到db_load, 则安装下列包, 如果正常则跳过本步骤
 

复制代码 代码示例:
yum -y install db4 db4-tcl db4-utils

# 直接编辑认证文件
vi /etc/pam.d/vsftpd
 

复制代码 代码示例:
# 清空里面的内容或者都注释掉(最前面加#), 添加下面两行
auth       required     pam_userdb.so db=/etc/vsftpd/user_passwd
account    required     pam_userdb.so db=/etc/vsftpd/user_passwd

# 编辑vsftp的配置文件
vi /etc/vsftpd/vsftpd.conf
# 添加内容
 

复制代码 代码示例:
listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log   # 日志文件路径, 前面有说到
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to hao32 FTP servers   # 登陆后欢迎语, 可以自定义
pam_service_name=vsftpd   # 认证文件名, 在位置/etc/pam.d/vsftpd
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list   # vsftp系统用户列表, 前面有说到
guest_enable=YES   # 允许虚拟用户
guest_username=ftpd   # vsftp的系统用户, 前面有说到
user_config_dir=/etc/vsftpd/user_config   # vsftp的虚拟用户的配置文件目录, 前面有说到
reverse_lookup_enable=NO # 禁止反解析,解决有时候连接FTP会卡住一会的问题

# 为每个虚拟用户创建配置文件
vi /etc/vsftpd/user_config/ftp1
 

复制代码 代码示例:
# 添加内容
local_root=/www/wwwroot/ftpd/ftp1
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

# 同样的方法建立ftp2,如果用户多的话,写入/etc/vsftpd/passwd.txt来生成密码认证的数据库文件。

# 启动vsftp服务器
 

复制代码 代码示例:
service vsftpd start

# 验证登陆
 

复制代码 代码示例:
主机名: 您服务器的IP地址
用户:ftp1/123456
用户:ftp2/456789

# 说明: /www/wwwroot/ftpd目录的所有文件用户属组都是ftpd,使用虚拟用户上传的文件用户属组也都是ftpd
# 为了处理多用户安全的情况,一个虚拟用户无法跳到同组其他用户下。