6. 为VSFTPD配置虚拟用户(文本方式)
6.1 创建虚拟与用户数据库
1. 创建loguser.txt,格式如下:
userid
pass
比如我创建两个用户:tony 密码为tonypass,etony密码为etonypass 则loguser.txt的内容如下:
tony
tonypass
etony
etonypass
2. 安装数据库生成工具:
# aptitude install libdb3-util
3. 生成数据库:
# db_load -T -t hash -f loguser.txt /etc/vsftpd_login.db
4. 设置数据库文件的访问权限:
# chmod 600 /etc/vsftpd_login.db
6.2 配置PAM文件
修改/etc/pam.d/vsftpd 内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
6.3 为虚拟用户创建本地系统用户
useradd -d /home/ftpsite virtual
mkdir /home/ftpsite
chown virtual.virtual /home/ftpsite
ls -ld /home/ftpsite
drwxr-sr-x 2 virtual virtual 48 2006-08-18 05:48 /home/ftpsite
在目录下创建一些内容
echo "etony's vsftpd server" > /home/ftpsite/msg
chown virtual.virtual /home/ftpsite/msg
6.4 创建/etc/vsftpd.conf
根据需要创建/etc/vsftpd.conf,但要确保含有一下设置:
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
6.5 启动vsftpd
/etc/init.d/vsftpd start|restart
6.6 测试
$ lftp localhost -u tony,tonypass
lftp tony@localhost:~> ls
-rw-r--r-- 1 1001 1001 22 Aug 17 21:49 msg
lftp tony@localhost:/> exit
$ lftp localhost -u tony,tonyp
lftp tony@localhost:~> ls
ls: Login failed: 530 Login incorrect.