Centos6.7安装配置vsftpd虚拟用户
演示环境
系统:Linux CentOS 6.7 64位
账号:root
环境:无安装vsftpd
1、安装依赖软件
[root@localhost ~]# yum install pam* db4* -y
安装PAM(用于虚拟用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)。
2、安装vsftpd
[root@localhost ~]# yum install vsftpd -y
设置vsftpd开机启动:
[root@localhostvsftpd]# chkconfig vsftpd on
通过chkconfig –list|grep vsftpd 查看启动项
3. 配置vsftpd.conf
[root@localhost vsftpd]# cd /etc/vsftpd/ //切换到该目录下
[root@localhost vsftpd]# vim vsftpd.conf //更改配置文件
部分配置解释
anonymous_enable=NO //控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为YES。
local_enable=YES //控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。
write_enable=YES //是否允许登陆用户有写权限。属于全局设置,默认值为YES。
local_umask=022 //本地用户新增档案时的umask 值。默认值为077。
xferlog_enable=YES //是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。
xferlog_file=/etc/vsftpd/vsftpd.log //设置日志文件名和路径,默认值为/var/log/vsftpd.log。
xferlog_std_format=YES //如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。
connect_from_port_20=YES //指定FTP使用20端口进行数据传输,默认值为YES。
idle_session_timeout=600 //
listen=YES //设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。默认值为300 。
pam_service_name=vsftpd //设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
userlist_enable=YES //是否启用vsftpd.user_list文件。
tcp_wrappers=YES //设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。
要添加的是下面几行
上图中添加行解释
pam_service_name=vsftpd.v //设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。 注意:要在/etc/pam.d/建立vsftpd.v文件
(这里可以根据自己爱好设置路径,一般采用默认配置即可。)
guest_enable=YES //启用虚拟用户。默认值为NO。
guest_username=ftpsite //这里用来映射虚拟用户。默认值为ftp。(这里可以根据自己爱好设置用户,一般采用默认,如果自己设定了就要建立这个用户)
user_config_dir=/etc/vsftpd/vsftpd_user_conf //虚拟用户的配置文件路径,所以别忘了在/etc/vsftpd/目录下新建一个vsftpd_user_conf文件夹。(这里的文件名字可以根据自己爱好设置,但是路径不能改动)
4、配置虚拟用户
比如我要添加一个叫jiaao的用户,ftp客户端就使用该用户名(密码后面设置)进行上传下载,在/etc/vsftpd/ vsftpd_user_conf新建一个名叫jiaao的文件。//文件名等于vsftpd_login.txt里面的账户名,否则下面设置无效
文件里面的内容为:
上图中添加行解释
local_root=/home/ap/ftpsite/shanghu/jiaao //该虚拟用户上传下载的根目录(可以根据自己爱好设置路径)
anon_world_readable_only=NO //这个anon_world_readable_only参数意思是,当他为YES时候,文件的其他人必须有读的权限才允许下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载,这是为安全性的一方面考虑,若为NO则只要ftp用户对文件有读权限即可下载,
write_enable=YES //可写(可上传)
anon_upload_enable=YES //
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
接下来在/etc/vsftpd/目录新建一个记录所有客户端用户(虚拟用户)的用户名密码的文本文档: vsftpd_login.txt
里面的内容为:
jiaao
123
奇数行是用户名,偶数行是密码。
接着,生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/ vsftpd_login.db
随后,编辑认证文件/etc/pam.d/vsftpd.v, (如果你没有设置pam_service_name=vsftpd.v这个参数的话,那么就要编译默认的/etc/pam.d/vsftpd文件,而且要将里面原来的那些行给注释掉,然后再添加如下图的两行)
增加以下两句
auth required pam_userdb.so db=/etc/vsftpd/ vsftpd_login
account requiredpam_userdb.so db=/etc/vsftpd/ vsftpd_login
5、设置服务器上的目录权限
[root@localhost ap]# chown ftpsite -R /home/ap/ftpsite/
[root@localhost ap]# chmod 755 –R /home/ap/ftpsite/
注意:系统没有该用户时候要先添加该用户
6、验证是否可以登录ftp服务器
登录成功。
本文出自 “jiaao” 博客,请务必保留此出处http://jiaao.blog.51cto.com/10894904/1769073
原文地址:http://jiaao.blog.51cto.com/10894904/1769073