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
时,虚拟用户只能下载、删除和重命名文件,无其他权限。