hao32的个人日志

vsftp 服务器虚拟用户配置(without mysql)

直接进入正题, 我比较习惯用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!

7 评论

  1. 配了以后用户正常登录, 但是无法上传文件, 建立文件夹

    目录在/var/ftp
    全部为ftp.ftp 755
    = =!

  2. 安装步骤来做的出现:输入用户名 密码 530 Login incorrect.

  3. 不知道为什么,按照上面的一步一步做,结果启动不起来 vsftpd

    Starting vsftpd for vsftpd: [FAILED]

  4. 刚才试了一下,确实是这样。
    看来我理解错了,多谢哈。

  5. nopriv_user 指定的用户身份执行处理匿名登录的用户,而对登录的用户就以用户自己的身份执行

  6. “nopriv_user=” #以某个用户来运行vsftpd 。

    配置文件里的这个参数不知你用过没,在我的机器上好像不起作用,郁闷……(我的vsftpd是yum安装,standalone模式运行的,运行的身份一直是root……)

1 引用通告

  1. vsftp 服务器虚拟用户配置(without mysql) - web构架

发表回复