一、需求
1、创建ftp用户srpcnftpuser访问默认目录:/home/srpcnftpuser/
2、例如商户A,访问我司FTP服务器时,默认权限目录为:/home/srpcnftpuser/商户号A
srpcnftpuser /home/srpcnftpuser/
ftpuser001 /home/srpcnftpuser/ftpuser001
二、安装配置vsftpd
1、安装vsftpd
yum install vsftpd psmisc net-tools systemd-devel libdb-devel perl-DBI
2、启动vsftpd服务
systemctl start vsftpd.service # 启动即可进行匿名用户登录
3、vsftpd配置文件(/etc/vsftpd.conf)
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_std_format=YES
async_abor_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
ftpd_banner=Welcome to FTP service.
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
data_connection_timeout=1
guest_enable=YES
guest_username=srpcnftpuser
user_config_dir=/etc/vsftpd/vconf
virtual_use_local_privs=YES
pasv_min_port=30001
pasv_max_port=30005
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES
4、创建虚拟帐户密码文件
cd /etc/vsftpd/
touch virtusers
vim /etc/vsftpd/virtusers
srpcnftpuser
123456
ftpuser001
passwd001
ftpuser002
passwd002
5、生成虚拟用户db文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
修改虚拟用户db文件权限:
chmod 600 /etc/vsftpd/virtusers.db
6、生成虚拟用户认证文件,并对文件进行修改。
vi /etc/pam.d/vsftpd 在文件行首加入下面两行内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
7、创建一个虚拟帐户
useradd -d /home/srpcnftpuser -s /sbin/nologin srpcnftpuser
8、创建虚拟用户配置文件的存放目录
9、在虚拟用户配置文件目录中创建以用户名为名称的文件
# cat srpcnftpuser [读、写、删除等权限]
local_root=/home/srpcnftpuser
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# cat /etc/vsftpd/vconf/ftpuser001 [读、写、删除等权限]
local_root=/home/srpcnftpuser/ftpuser001
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# cat /etc/vsftpd/ftpuser002 [只读权限]
local_root=/home/srpcnftpuser/ftpuser001
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# cat /etc/vsftpd/liutao [只允许上传,不允许下载、删除文件]
local_root=/home/srpcnftpuser/ftpuser001
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
download_enable=NO
cmds_denied=DELE
10、重启vsftpd
# systemctl restart vsftpd.service
三、新建虚拟用户步骤
1、/etc/vsftpd/virtusers # 在virtusers文件中增加新用户及密码
srpcnftpuser
123456
ftpuser001
passwd001
ftpuser002
passwd002
ftpuser003 # 新增用户
passwd003 # 密码
2、生成虚拟用户db文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db # 生成db文件
3、/etc/vsftpd/vconf/ftpuser003 # 创建虚拟用户
# cat ftpuser003
local_root=/home/srpcnftpuser/ftpuser003
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
4、创建目录
# mkdir /home/srpcnftpuser/ftpuser003
5、权限设置
# chown -R srpcnftpuser.srpcnftpuser ftpuser003/