1、安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下:
# yum install -y vsftpd db4*
2、修改SELINUX,命令如下:
# vim /etc/sysconfig/selinux // 将SELINUX=enforcing 改为 SELINUX=permissive
# setenforce 0 // 运行此命令使修改生效
3、防火墙允许22端口
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
4、建立虚拟用户登录文件,奇数行为用户,偶数行为密码,只能这样写,否则系统不认:
# vi /etc/vsftpd/logins.txt
在logins.txt里添加以下内容:
upload
password
download
password
adminftp
password
5、生成口令认证文件:
# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_logins.db
6、创建虚拟用户认证文件:
# vi /etc/pam.d/vsftpd.vu
添加以下内容
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_logins
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_logins
7、创建虚拟用户
# useradd -d /home/virtualuser -s /sbin/nologin virtualuser
# chmod 777 /home/virtualuser // 给777权限,否则用户不能访问
8、修改主配置文件:
# vi /etc/vsftpd/vsftpd.conf
修改以下内容:
anonymous_enable=NO // 不允许匿名访问
chroot_local_user=YES // 将所有用户限制定根目录下
guest_enable=YES // 启用虚拟用户
guest_username=virtualuser // 映射虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf // 为不同用户分配不同权限
9、创建虚拟用户配置文件并定位的配置文件:
# mkdir /etc/vsftpd/vsftpd_user_conf
# cd /etc/vsftpd/vsftpd_user_conf
# touch upload download adminftp // 此处建立的文件需与logins.txt里的用户名一致
10、分别给三个用户分配不同的权限
1)# vi upload //用户只能上传配置
local_root=/home/virtualuser
download_enable=NO
wite_enable=YES
anon_upload_enable=YES
2) # vi download // 用户只能下载
local_root=/home/virtualuser
anon_world_readable_only=NO
3) # vi adminftp // 用户所有权配置
local_root=/home/virtualuser
download_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
11、重启vsftpd服务并测试虚拟用户:
# service vsftpd start // 启动vsftpd服务
# chkconfig vsftpd on // 设置开机启动vsftpd
ftp://localhost // 测试虚拟用户连接效果
PS:如果本地连接正常,而其它电脑连不上,建议将SELINUX设置为disabled,另外关掉防火墙:service iptables stop。
此文参照此链接:http://www.ailab.cn/article/2015082027708.html