Cent OS 安装vsftp并配置虚拟用户

在网站应用中,有的时候客户需要对自己网站的程序文件进行维护,这时我们就需要提供一个ftp帐号给客户使用并且该账户只能管理对应的程序目录。

本次操作基于centos 6.3 64位 操作系统以及vsftp,为了安全vsftp将采用虚拟用户方式

1、首先安装vsftp,标准的yum。。

yum install vsftp


2、配置vsftp虚拟用户口令库文件,一行用户名一行密码的格式。

新建文件

vi /etc/vsftpd/account.txt


编辑内容,例:用户名:abc 密码:123456    用户名:cde 密码:123456

abc
123456
cde
123456


3、使用db_load命令生成vsftpd虚拟用户的认证文件

db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/account.db


如果提示命令不存在,请安装db4相关软件

yum install -y db4 db4-utils


生成完毕之后为了安全性,最好设置account.db只允许root用户查看

chmod 600 /etc/vsftpd/account.db


4、建立虚拟用户所需的PAM配置文件

vi /etc/pam.d/vsftpd


插入以下内容。注:如果是32位系统的话将lib64改为lib即可

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account 
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account


5、建立虚拟用户宿主用户以及宿主目录(就是建立一个系统用户,并且指定网站所在目录为该用户所有)

useradd -d /home/webs ftpuser


接下来编辑vsftp的配置的文件vasftpd.conf

老规矩,编辑之前备份一下

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak


vi /etc/vsftpd/vsftpd.conf


#不允许匿名用户访问,默认是允许。  
anonymous_enable=NO  
#不允许FTP用户离开自己主目录,默认是被注释掉的。  
chroot_list_enable=YES  
#如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置,如果不开启用户登录时就会报500 OOPS的错。  
chroot_list_file=/etc/vsftpd/chroot_list  
#注意:/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了  
#会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改 
idle_session_timeout=600  
#支持异步传输功能,默认是注释掉的,去掉注释  
async_abor_enable=YES  
#支持ASCII模式的下载功能,默认是注释掉的,去掉注释  
ascii_upload_enable=YES  
#支持ASCII模式的上传功能,默认是注释掉的,去掉注释  
ascii_download_enable=YES  
#FTP的登录欢迎语,本身是被注释掉的,去不去都行  
ftpd_banner=Welcome to blah FTP service  
#禁止本地用户登出自己的FTP主目录,本身被注释掉,去掉注释  
chroot_local_user=YES  
#新加以下几行  #设定启用虚拟用户功能。  
guest_enable=YES  
#指定虚拟用户的宿主用户,就是之前简历的宿主用户  
guest_username=ftpuser  
# 配置vsftpd使用的PAM模块为vsftpd 
pam_service_name=vsftpd 
# 设置虚拟账户配置文件的主目录为/etc/vsftpd/user_config(后面创建) 
user_config_dir=/etc/vsftpd/user_config 
virtual_use_local_privs=YES 
#最关键的,每个虚拟用户绑定/home/webs下自己的目录,注意:目录名要和虚拟用户名一致 
user_sub_token=$USER


7、建立每个虚拟用户的配置文件,以abc、cde用户为例

mkdir /etc/vsftpd/user_config


vi /etc/vsftpd/user_config/abc


插入以下内容

#用户主目录,该用户将被锁定到该目录 
local_root=/home/webs/$USER  
# 允许用户浏览FTP目录和下载文件  
anon_world_readable_only=NO  
#  
# 允许用户进行文件改名和删除文件的权限  
anon_other_write_enable=YES  
#  
# 表示用户具有建立和删除目录的权利  
anon_mkdir_write_enable=YES  
#  
# 表示用户可以上传文件  
anon_upload_enable=YES  
#  
# 限制传输速度为300KB/s  
anon_max_rate=307200 


vi /etc/vsftpd/user_config/cde


#用户主目录,该用户将被锁定到该目录 
local_root=/home/webs/$USER  
# 允许用户浏览FTP目录和下载文件  
anon_world_readable_only=NO  
#  
# 允许用户进行文件改名和删除文件的权限  
anon_other_write_enable=YES  
#  
# 表示用户具有建立和删除目录的权利  
anon_mkdir_write_enable=YES  
#  
# 表示用户可以上传文件  
anon_upload_enable=YES  
#  
# 限制传输速度为300KB/s  
anon_max_rate=307200 


8、重启vsftp服务使所有配置生效

1 service vsftpd restart 


注意:新加虚拟用户的话需要重新生成认证文件。。。。

猜你喜欢

转载自nirending.iteye.com/blog/1729672