如何用vsftpd的虚拟用户来管理Apache的虚拟主机
根据网上的教程整理出来用vsftpd的虚拟用户来管理Apache的虚拟主机,发现确实挺方便的,所以发出来,做个记录,我的系统是CentOS 6.5 64位。
#安装所需的包
yum install -y pam vsftpd db4 db4-utils
#用httpd的用户来作为vsftpd的映射用户,达到方便管理各个虚拟主机的目的,我的httpd的用户为apache
#创建一个记录vsftpd虚拟用户的用户名和密码的文件(文件名随意取,这里用vuser_vsftpd_login.txt)
#格式为:一行用户名,一行密码,多个用户分行写入。
#例如:
vi /etc/vsftpd/vuser_vsftpd_login.txt
vuser_aiplaypc.com
123456
chmod 600/etc/vsftpd/vuser_vsftpd_login.txt
#使用db_load 命令生成虚拟用户认证文件
db_load -T -t hash -f /etc/vsftpd/vuser_vsftpd_login.txt /etc/vsftpd/vuser_vsftpd_login.db
chmod 600/etc/vsftpd/vuser_vsftpd_login.db
#需要注意的是,每次新增虚拟用户之后,都要执行一次db_load这条命令,这样才能更新虚拟用户认证文件,也就是vuser_vsftpd_login.db
#备份一下vsftpd的配置文件,然后清空vsftpd.conf的内容,重写一个vsftpd.conf
cp /etc/vsftpd/conf/vsftpd.conf /etc/vsftpd/conf/vsftpd.conf.default
vi /etc/vsftpd/conf/vsftpd.conf
#####vsftpd.conf开始#####
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
#日志功能,如果启用,去掉注释即可
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
max_per_ip=5
max_clients=200
guest_enable=YES
#打开虚拟用户功能
guest_username=apache
#将所有虚拟用户映射成apache这个本地用户,用httpd的用户apache做映射,这样就可以对网站目录进行管理了
pam_service_name=/etc/pam.d/ftp.vu
#ftp用户的pam验证方式
user_config_dir=/etc/vsftpd/vuser_conf
#放置每个虚拟用户的配置文件的目录,一个用户一个文件
#####vsftpd.conf结束#####
#接下来创建vsftpd.conf中提到的验证文件
cp /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp.vu
vi /etc/pam.d/ftp.vu
#ftp.vu原文件的内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/login
#ftp.vu修改后的内容,如果是32位系统就改=号后面的路径即可
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_vsftpd_login
#创建放置虚拟用户配置文件的目录
mkdir /etc/vsftpd/vuser_conf
#创建vsftpd虚拟用户的配置文件,最好文件名就是用户名,容易查找,内容如下
vi /etc/vsftpd/vuser_conf/vuser_aiplaypc.com
#####虚拟用户配置开始#####
anon_world_readable_only=no
#用户可以浏览和下载文件,不能设为yes,否则无法看到文件
write_enable=yes
#用户可以创建文件
anon_upload_enable=yes
#用户可以上传文件
anon_mkdir_write_enable=yes
#用户有创建和删除目录的权限
anon_other_write_enable=yes
#用户具有文件改名和删除文件的权限
local_root=/home/web/html
#指定这个虚拟FTP用户的家目录,这里的html是你虚拟主机的根目录
#####虚拟用户配置结束#####
#在虚拟用户配置文件中以yes和no 这两个参数根据实际情况来控制ftp用户的权限,或者把对应的语句删除
到这里,用vsftpd的虚拟用户来管理apache虚拟主机的配置就完成了,重启vsftpd就可以用虚拟用户登录并且管理网页文件了,如果不能登录,请查看iptables和selinux的设置。
更多vsFTPd相关教程见以下内容: