虚拟用户相对之前的匿名用户和系统账号登录在设置上有些不同要修改的地方有点多
1.在一切开始之前不要忘记,关闭iptables,lokkit防火墙,selinux
2.开始正式设置
A vsftp主配置文件/etc/vsftpd/vsftpd.conf
local_enable=YES //允许系统账号登录
write_enable=YES //允许写入
local_umask=022 //上传文件或文件夹的默认权限
listen=YES //打开21端口进行侦听
guest_enable=YES //启用虚拟用户
guest_username=ftp //虚拟用户映射的系统账号
pam_service_name=vsftpd //验证模块
virtual_use_local_privs=YES //是否让各虚拟用户拥有映射账号的权限
user_config_dir=/etc/vsftpd/user_conf //各虚拟用户配置文件所在文件夹
B 修改验证模块vsftpd
vim /etc/pam.d/vsftpd
可以把之前的都注释掉,添加以下
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_user
C 生成虚拟用户数据库
I.先新建一个密码文档,如:
vim /etc/vsftpd/userdb
aa //帐号123456 //密码
bb //账号
123456 //密码
格式为:一行账号,一行密码
II.生成虚拟用户数据库
db_load –T –t hash –f /etc/vsftpd/ftpdb /etc/vsftpd/ftp_user.db
D 新建虚拟用户配置文件
mkdir /etc/vsftpd/user_conf //先新建文件夹vim aa //新建aa的配置文件
添加:
local_root=/testE 新建虚拟用户家目录
mkdir /test
chown ftp.ftp /test //这里要注意属有者一定要是虚拟用户映射的本地账号,否则会无法写入。
虚拟用户的传属配置
virtual_use_local_privs
这个配置很关键,决定了用户登录之后的权限归属。
virtual_use_local_privs=YES 那么用户在登录之后会被当成系统帐号对待,读写权限只受write_enable属性和文件夹权限限制,如果没有锁定登录文件夹,可以向上一直跳到根目录。
virtual_use_local_privs=NO 那么用户在登录之后会被当成匿名用户对待,自动锁定在登录文件夹内,读写权限不但受到write_enable属性和文件夹权限的限制,还更进一步受到anno_upload_enable、 anon_world_readable_only、anon_other_write_enable、anon_mkdir_write_enable属性的影响。
主配置文件vsftpd.conf里的配置是通用配置,user_config_dir文件夹里的文件是每个虚拟用户的配置,这里配置如果与主配置文件中的相冲突,则会覆盖掉相冲突的属性项,以个人配置文件内的为准。