首先介绍一下什么是虚拟用户:
FTP的虚拟用户是特定服务的专用用户,拥有独立的用户/密码文件。所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位
置,即为此系统帐号的家目录,各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定。
1 装包 yum -y install vsftpd
2 修改配置文件vim /etc/vsftpd/vuser.txt
奇数行为用户名 偶数行为密码
yum -y install db4_utils 安装报错没有这个包
yum list |grep db4* 发现仓库也没有相关包
yum provides */db_load 直接扫描命令找相关包
安装 libdb-utils
db_load -T -t hash -f vusers.txt vusers.db 编码文件为hash 格式 #可以理解为系统识别的表文件,注意vuser.txt路径是相对路径
vim /etc/pam.d/vsftpd 修改系统认证文件
auth 为密码 account为账户 注意格式和认证的路径
修改/etc/vsftp/vsftpd.conf
末行添加
guest_enable=YES 为开启虚拟用户
guest_username=vuser 为虚拟用户使用的系统用户
useradd -d /home/vuser -s /sbin/nologin vuser 创建系统用户 -d 指定家目录 -s 登录解释器
chmod 644 /home/vuser 修改目录权限
重启服务正常验证即可 , 接下来说安装过程产生的问题
常见报错 530
出现报错不要慌张,第一件事查看日记
日记显示 无法找到文件 仔细对照文件路径发现是认证文件路径写错/etc/ 写成了 /etv
再次连接
500 大体是权限问题 也就是说 你在vsftpd.conf 配置文件中 的匿名权限和文件权限冲突,根据配置去修改权限 如果按照本文中配置赋予644 不会出现这个问题
还有一个可能是 文件名称与配置名称不符: 也就是说我/etc/passwd 中的 vuser 的目录名称为 vftproot 而我/home/下的为vuser 这种情况直接改目录名即可
总结530大体是粗心 配置文件写错 或者某些地方没有注释
500 大体为权限问题 权限与配置文件对应权限不符
都修改完可以正常连接
顺嘴提一句我使用的ftp工具是filezilla



