转自
使用vsftpd虚拟用户可以将权限限制在每个用户的根目录里,这样解决了匿名用户不能正对每个人进行权限控制的缺点,也避免了使用本地用户而产生的安全性问题。
一、 安装rpm包
vsftpd-2.2.2-6.el6_0.1.i686
db4-4.7.25-17.el6.i686
db4-utils-4.7.25-17.el6.i686
二、创建用户数据库
1. 创建临时用户文件 /etc/vsftpd/ftp_pam_db.users, 内容格式如下:
1 2 3 4 | 用户1 用户1的密码 用户2 用户2的密码 |
2. 用db_load命令生成pam_userdb认证所需要的账号文件
1 | [root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/ftp_pam_d b.users /etc/vsftpd/vsftpd.login.db |
3. 配置PAM信息
在/etc/pam.d下新建一个文件vsftpd.pam,内容如下
1 2 | auth required pam_userdb.so db=/etc/vsftpd/vsftpd.login account required pam_userdb.so db=/etc/vsftpd/vsftpd.login |
vsftpd.login文件名后请不要加.db扩展名
4. 配置vsftpd账号
vsftpd服务器允许在启动时指定配置文件,创建一个用于启动vsftpd服务的配置文件/etc/vsftpd/vsftpd.virtual.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | listen=YES 允许监听,由vsftpd自己监听和处理IPv4端口的连接请求 listen_port=21 通过21端口监听 anonymous_enable=NO 不允许匿名用户访问 local_enable=YES 允许本地用户访问 chroot_local_user=YES 限制本地用户在自己的家目录中 guest_enable=YES 允许虚拟用户 guest_username=ftp 虚拟用户映射到本地用户“ftp” max_clients=100 最多允许同时连接100个客户端 max_per_ip=10 每个IP最大连接数为10 pam_service_name=vsftpd.pam 指定PAM配置文件名 user_sub_token=$USER 自动进入虚拟用户名对应的家目录 local_root=/var/ftp/virtual/$USER 指定每个虚拟用户账户家目录 #local_root=/var/ftp 指定默认的FTP目录,若启用上一条配置将无效 xferlog_enable=YES 允许系统自动维护上传和下载的日志文件 xferlog_file=/var/log/vsftpd.log 指定日志文件 xferlog_std_format=YES 传输日志文件将以标准xferlog格式书写 |
5. 根据以上配置创建虚拟用户家目录
6. 应用创建的配置文件启动vsftpd服务,若已经启动可先停止运行。
1 | /usr/sbin/vsftpd /etc/vsftpd/vsftpd.virtual.conf |
7. 在客户端上登录测试
本文出自 “” 博客,请务必保留此出处