VSFTPD虚拟用户
所有的虚拟用户会统一映射为一个指定的系统帐号;访问共享位置即为此系统帐号的家目录各虚拟用户可赋予不同的访问权限,通过匿名用户的权限控制参数进行指定。
1、创建虚拟用户的帐号密码数据库文件
a、创建帐号密码文件
格式:奇数行为帐号,偶数行为密码
[[email protected]~]# vim /etc/vsftpd/vusers.list
test1 #用户
123456 #密码
test2
123456
test3
123456
b、将该文件转换为二进制数据库文件,这里需要借助db4工具实现;
[[email protected] ~]# yum installdb4 –y #安装db4工具
[[email protected] ~]# cd /etc/vsftpd/
[[email protected] vsftpd]# db_load -T -t hash-f vusers.list vusers.db #生成数据库文件
[[email protected] vsftpd]# chmod 600vusers.* #修改权限,保证密码文件安全
2、创建需要访问的FTP目录
[[email protected] ~]# useradd -d /var/ftproot-s /sbin/nologin vuser
[[email protected] ~]# chmod +rx /var/ftproot/
Centos7 还需要执行以下操作:
[[email protected] ~]# chmod –w /var/ftproot
[[email protected] ~]# mkdir/var/ftproot/upload
[[email protected] ~]# setfacl -m u:vuser:rwx /var/ftproot/upload
3、创建pam配置文件
[[email protected] ~]# vim/etc/pam.d/vsftpd.db
auth required pam_userdb.sodb=/etc/vsftpd/vusers
accountrequired pam_userdb.so db=/etc/vsftpd/vusers
注意:这后面的文件是不带后缀的。
4、指定pam配置文件
[[email protected] ~]# vim/etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd #设置 PAM 外挂模块提供的认证服务所使用的配置文件名guest_enable=YES #开启虚拟用户
guest_username=vuser #指定虚拟用户映射的系统用户
pam_service_name=vsftpd.db #指定虚拟用户帐号密码数据库文件
virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限;
此时重启vsftpd 服务后,虚拟用户可正常登录。
注意:selinux :可以禁用selinux 或者 执行setsebool –P ftpd_full_access 1
5、虚拟用户建立独立的配置文件
为满足各用户的不同需求可以对不同的虚拟用户创建独立的配置文件分别管理。
a、为个别虚拟用户创建独立的配置文件
[[email protected] ~]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vuser.d/
b、为个别虚拟用户配置相关参数
[[email protected] vuser.d]# vim test2
anon_upload_enable=YES #允许上传 (允许虚拟用户test2上传文件)
download_enable=NO #禁止下载 (禁止虚拟用户test2 下载文件)
至此实现虚拟用户的正常使用。Test1具有与其主目录相等权限允许上传、下载、删除等权限,test2只可上传不可下载。