一、FTP虚拟账号创建
1、创建用户数据库文件
vim /etc/vsftpd/vusers.txt
在新建的vusers.txt中输入用户名和密码,奇数行为用户名,偶数行为密码
qq
centos
2、设置权限与编译此文件
cd /etc/vsftpd/
db_load -T -t hash -f vusers.txt vusers.db ##编译文件
chmod 600 vusers.db
将db文件改为600权限,主要是为了安全
3、创建linux用户和ftp目录(这个账号将来虚拟账号映射成它)
映射账号对根要没有写权限
useradd -s /sbin/nologin vftpuser
chmod 555 /home/vftpuser/ ###把用户家目录的写权限去掉
修改vsftpd.conf配置,把匿名写权限打开
4、修改pam配置文件
vim /etc/pam.d/vusers.db #这个名字叫什么都可以
这个vusers名字一定要和第二步中创建的xxxx.db名字一样,最后不要加.db
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
5、让主配置文件知道你要用自己修改的pam模块
#以下默认配置conf没有,需要自行添加
pam_service_name=vusers.db
userlist_enable=YES
tcp_wrappers=YES
放在vusers.txt里面的就是合法用户,可以登陆,其他禁止登陆
6、把所有系统账号映射成我们创建的vftpuser账号,并关闭linux系统账号登陆
vim /etc/vsftpd/vsftpd.conf
#以下默认配置conf没有,需要自行添加
guest_enable=YES
guest_username=vftpuser
7、虚拟用户建立独立的配置文件
vim /etc/vsftpd/vsftpd.conf
#以下默认配置conf没有,需要自行添加
user_config_dir=/etc/vsftpd/vftpuser.d/
把上面这个文件夹创建出来
mkdir /etc/vsftpd/vftpuser.d/
在这个文件夹目录下创建针对虚拟用户的配置
vim qq
local_root=/data/qq
anon_upload_enable=YES
anon_mkdir_write_enable=YES
8、创建虚拟账户默认登陆路径
mkdir /data/qq
9、配置其他conf参数
#修改conf中参数
anonymous_enable=NO #关闭匿名登录
local_enable=YES
write_enable=YES
connect_from_port_20=YES
chown_uploads=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
listen=YES
listen_ipv6=NO
#新增如下参数
userlist_file=/etc/vsftpd/user_list
allow_writeable_chroot=YES
download_enable=YES
seccomp_sandbox=NO
10、修改虚拟账号权限和配置虚拟账号根目录权限
chown -R vftpuser /data/qq
#conf如下配置,否则虚拟账号上传后文件权限600,无法下载
#不要修改local_umask=022配置
virtual_use_local_privs=YES
二、FTP虚拟账号新增
1、在vusers.txt密码本中新增用户名和密码
demo
123456
2、生成新的db密码
db_load -T -t hash -f vusers.txt vusers.db
3、跳转到用户配置文件夹下,创建新用户配置
cd /etc/vsftpd/vftpuser.d
vim demo
local_root=/data/demo
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
4、创建用户登录根目录local_root
mkdir -p /data/demo
5、创建用户权限
chown -R vftpuser demo/