当咱们的用户量愈来愈大时,继续建立更多的系统用户是不明智的,这时就须要为vsftpd建立虚拟帐户,但vsftpd虚拟帐户的数据库要保存在Berkeley DB格式的数据文件中,因此须要安装db4-utils工具来建立这样的数据库文件数据库
(1)安装vsftpd服务tomcat
yum install vsftpd
service vsftpd restart
chkconfig vsftpd on
(2)建立虚拟用户数据库安全
首先须要建立明文文件,明文文件奇数行为用户名,偶数行为密码。使用db_load工具将其转换为数据库文件,db_load工具须要经过安装db4—utils软件得到。最后经过修改文件权限以加强资料的安全性并发
yum -y install db4-utils
vi /etc/vsftpd/vlogin
在vlogin文件中写入用户名和密码运维
tomcat 123456 jerry 654321
生成虚拟数据库tcp
db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
chmod 600 /etc/vsftpd/{vlogin,vlogin.db}
(3)建立PAM文件,设置虚拟帐号验证工具
Linux通常经过PAM文件设置帐号的验证机制,而后经过建立PAM文件,使用新的数据文件进行登陆验证,PAM文件中的db选项于指定并验证帐户和密码的数据库文件oop
vi /etc/pam.d/vsftpd.pam auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
(4)设置虚拟帐户共享目录ui
由于全部的虚拟帐户须要映射到一个真实的系统帐户,因此系统须要添加一个系统帐户并设置家目录spa
useradd -s /sbin/nologin -d /home/ftp virtual
(5)修改主配置文件
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名登陆,默认开启 local_enable=YES #启动本机帐户ftp write_enable=YES #容许写操做 anon_upload_enable=YES #容许匿名用户上传,默认禁止 anon_mkdir_write_enable=NO #禁止匿名用户建立目录 anon_other_write_enable=NO #禁止匿名用户进行其余写操做 guest_enable=YES #开启,则所用非匿名用户登陆都指定到guest_username的指定帐号 guest_username=virtual #设置来宾帐号,即咱们刚刚建立的帐号 listen_port=21 pasv_enable=YES #启动被动模式链接 pasv_min_port=30000 pasv_max_port=30999
user_config_dir=/etc/vsftpd_user_conf pam_service_name=vsftpd.pam #指定pam文件
user_sub_token=$USER
(5)为每一个用户设置独立的共享路径
经过在主配置文件中使用user_config_dir选项,设置一个基于帐户的配置目录,在该目录下可建立若干个与帐户名称相同的文件,并在文件中为此帐户设置独立的配置选项,包括权限与共享路径等设置,本文仅以tomcat为列,若是你还须要对权限,限速,并发量等选项进行设置,能够参考匿名帐户的设置帐户的设置选项添加至帐户独立的配置文件中
mkdir /etc/vsftpd_user_conf mkdir -p /home/ftp/tomcat vi /etc/vsftpd_user_conf/tomcat local_root=/home/ftp/$USER
(6)将21号端口写进防火墙
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #添加这一行
(7)重启服务
service iptables restart
service vsftpd restart
常见问题
一、530 Login incorrect
pam验证失败,多是由于你使用的64位操做系统,而pam文件中库文件的调用却使用的是/lib/security/pam_userdb.so。或者是用户名或密码输入错误,也有多是vsftpd主配置文件中pam_service_name设置的pam文件名称与/etc/pam.d中建立的pam文件不一致
二、500 oops:cannot change directory:/home/ftp/$USER
setsebool -P ftp_home_dir 1
三、上传文件失败
chmod 777 /home/ftp/tomcat
注:实习生作运维。这是为了之后不用处处找文章才写的,不完善或错误请指出!!!!!!!!!!