作者:min覀igreenr | 来源:互联网 | 2014-05-28 09:06
直接进入正题,我比较习惯用vsftp,设置相对简单些吧.系统环境是:CentOS5.2x86_64FTP服务端:vsftpd本文简单说明服务器虚拟用户配置情况不编译安装了,用最简洁的方式,直接:#通过yum直接在线装vsftpd(rpm版本)yum-yinstallvsftpd#创建系统用
直接进入正题, 我比较习惯用vsftp, 设置相对简单些吧.
系统环境是: CentOS 5.2 x86_64
FTP服务端:vsftpd 本文简单说明服务器虚拟用户配置情况
不编译安装了, 用最简洁的方式, 直接:
# 通过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
查看原文解决方案: http://www.linuxsense.cn/no-db_load-solutions.html
# 直接编辑认证文件
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
# 一般没有意外就会一切okay, 有意外请在本站留言!
# 说明: /www/wwwroot/ftpd目录的所有文件用户属组都是ftpd,
使用虚拟用户上传的文件用户属组也都是ftpd
# 目的就是为了处理多用户安全的情况, 一个虚拟用户无法跳到同组其他用户下
# good luck!