CentOS下vsFTP用户管理主要涉及系统用户和虚拟用户,步骤如下:
添加用户
sudo useradd -m ftpuser # 创建用户并生成家目录
sudo passwd ftpuser # 设置密码
删除用户
sudo userdel -r ftpuser # 删除用户及家目录
修改用户密码
sudo passwd ftpuser
配置用户权限
/etc/vsftpd/vsftpd.conf,设置:chroot_local_user=YES
allow_writeable_chroot=YES # 允许写入(若需上传文件)
/etc/vsftpd/user_list控制用户访问权限:
userlist_enable=YES:启用用户列表控制。userlist_deny=NO:仅允许列表内用户访问(白名单);YES则为黑名单。安装依赖
sudo yum install db4 db4-utils vsftpd-pam
创建虚拟用户数据库
/etc/vsftpd/virtusers.txt,格式为:username
password
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
sudo chmod 600 /etc/vsftpd/virtusers.db
配置PAM认证
编辑/etc/pam.d/vsftpd,添加:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
修改vsftpd配置
guest_enable=YES
guest_username=virtual_user # 虚拟用户映射的系统用户(需提前创建)
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER # 虚拟用户家目录
sudo systemctl restart vsftpd
sudo firewall-cmd --add-service=ftp --permanent
sudo firewall-cmd --reload
说明:
useradd创建,虚拟用户通过数据库文件管理,后者无需占用系统账户资源。/etc/vsftpd/vsftpd.conf为主配置文件,虚拟用户相关文件需手动创建。