vsftpd 虚拟用户配置说明
环境信息
- Centos 7
- Vsftpd 3.0.2
vsftpd 虚拟用户通过映射系统用户权限的方式,使虚拟用户具有和本地系统用户一样的权限,或者灵活的控制虚拟用户的权限(不和本地用户权限相同,不能高于本地权限),达到访问权限的灵活控制,同时防止大批 vsftpd 用户添加到系统账号库中,使系统用户管理变动臃肿。
创建虚拟用户映射的系统用户
系统用户 virtftp 拥有对 ftp 的读写权限,假设 ftp 根目录为/data/vsftpd/
创建 ftp 用户组和用户 virtftp,ftp 相关系统账号属于 ftp 组
groupadd ftp |
ftp 根目录属于用户 virtftp,用户组为 ftp,设置权限 750,使 virtftp 用户拥有读写权限
创建虚拟用户的口令库
需要使用 db_load 命令根据原始口令文件( /etc/vsftpd/passwd.txt )生成 db 口令库文件,原始文件中奇数行为用户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/passwd.txt /etc/vsftpd/passwd.db |
修改 pam 认证文件/etc/pam.d/vsftpd,只保留以下 2 行
或者重新创建文件/etc/pam.d/vsftpd_vu,并在 vsftpd.conf 中配置 pam_service_name=vsftpd_vu )
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/passwd |
db=/etc/vsftpd/passwd为db_load生产的文件,不要带后缀.db
如果认证发生错误,可检查日志文件:/var/log/secure
配置 vsftpd 启用虚拟用户
修改 vsftpd 配置文件,默认为 /etc/vsftpd/vsftpd.conf vsftpd.conf常用配置文件说明
使用虚拟用户功能,必须允许本地用户 |
配置虚拟用户配置文件
虚拟用户配置文件位于 vsftpd.conf 配置 user_config_dir 指定的目录下,每个用户一个配置文件,配置文件和用户名同名
用户名,配置文件名,必须和口令文件中的用户名保持一致
指定虚拟用户根目录 |
常用配置说明
virtual_use_local_privs 参数说明
当 virtual_use_local_privs=YES 时,虚拟用户和本地用户有相同的权限;
当 virtual_use_local_privs=NO 时,虚拟用户和匿名用户有相同的权限,默认是 NO。
当 virtual_use_local_privs=YES , write_enable=YES 时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当 virtual_use_local_privs=NO , write_enable=YES , anon_world_readable_only=YES , anon_upload_enable=YES 时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当 virtual_use_local_privs=NO , write_enable=YES , anon_world_readable_only=NO , anon_upload_enable=NO 时,虚拟用户只能下载文件,无其他权限。
当 virtual_use_local_privs=NO , write_enable=YES , anon_world_readable_only=NO , anon_upload_enable=YES 时,虚拟用户只能上传和下载文件,无其他权限。
当 virtual_use_local_privs=NO , write_enable=YES , anon_world_readable_only=NO , anon_mkdir_write_enable=YES 时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当 virtual_use_local_privs=NO , write_enable=YES , anon_world_readable_only=NO , anon_other_write_enable=YES 时,虚拟用户只能下载、删除和重命名文件,无其他权限。