在vsftpd服务中,虚拟用户被默认做为匿名用户进行处理以下降权限,所以对应的配置项一般以anon_开头。shell
基本搭建过程以下:数据库
一、建立文本格式的用户名/密码列表
文本中奇数行为用户名,偶数行为上一行中用户所对应的密码。如:执行如下操做添加两个用户mike、john,密码分别为123,456安全
新建一个文本:服务器
输入用户名和密码:并发
二、建立Berkeley DB格式的数据库文件app
有了文本格式的用户名/密码列表文件后,以此文件做为数据源经过db_load工具建立Berkeley DB格式的数据库文件:tcp
在db_load命令中,-f 选项用于指定数据源文件,-T 选项容许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件, “ -t hash ” 选项指定读取数据文件的基本方法。ide
为了保证数据安全,能够将文件权限设置为 “600” ,避免数据外泄:工具
三、添加虚拟用户的映射帐号、建立FTP根目录:日志
如如下操做添加了一个名为 “test” 的系统用户帐号(此帐号无须设置密码及登陆shell),并结合实际状况更改目录权限,指定的宿主目录,默认是全部虚拟用户的根目录(能够最后对每一个用户的配置文件单独设置)
四、为虚拟用户创建PAM认证文件
vsftpd服务默认的PAM认证文件位于 /etc/pam.d/vsftpd ,能够执行如下操做在/etc/pam.d目录下创建一个名为vsftpd.vu的PAM认证文件,用于虚拟用户认证控制。
以上内容,经过 “ db=/etc/vsftpd/vusers”参数指定了要使用的虚拟用户数据库文件位置(省略了.db扩展名)
五、为不一样的虚拟用户创建独立的配置文件(为了给不一样虚拟用户设置不一样的权限,若全部的虚拟用户权限一致,则可忽略这一步)
打开后写入相应权限
保存退出后,并以一样的方式创建其余用户的独立的配置文件。
六、更改 /etc/vsftpd/vsftpd.conf 的配置文件以下:
以上各主要配置项字段含义以下:
anonymous_enable=NO:禁止匿名用户访问;
local_enable=YES:容许本地系统用户访问;
write_enable=YES:启用任何形式的写入权限,(如上传、删除文件等)都须要开启此项;
local_umask=022:设置本地用户所上传的默认权限掩码;
listen=NO:是否以独立运行的方式监听服务;
pam_service_name=vsftpd.vu:设置用于用户认证的PAM文件位置;
guest_username=test:指定映射的系统用户名称;
guest_enable=YES:是否启用虚拟用户;
allow_writeable_chroot=容许被限制用户的主目录具备写权限(此项必须写入,不然可能会报错)
anon_world_readable_only=NO:容许用户下载目录内容
anon_other_write_enable=YES:容许匿名用户有其余写入权限,如重命名、覆盖及删除文件等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虚拟用户独立的配置文件目录
若都有同样的权限,直接在上面这个配置文件写入就好,如有不同的权限,能够写入到用户单独的配置文件中,也可在在用户单独的配置文件中指定新的根目录
保存退出配置文件后,执行systemctl start vsftpd
启动ftp服务便可使用。
-----关于ftp全部配置项的详细解释 -----关于匿名用户:
-----关于本地用户:
-----关于全局配置:
-----关于虚拟用户的配置项: