关闭防火墙, selinux 安全机制 service iptables stop setenforce 0
匿名用户
匿名用户只能访问 ftp 服务器上的 / var/ftp/pub 目录
ftp 普通用户访问的文件在 ftp 用户的宿主目录
匿名访问: 有两个匿名账户 ftp 和 anonymous
ftp 的密码为空, anonymous 的密码为空或者 guest
下图可以看到匿名用户只能访问 pub 文件夹下的内容, 不能访问 ftp 服务器上其他目录下的内容
本地用户登陆 ftp
本地用户登录 ftp, 会出现信息泄露的问题, 本地用户不止可以访问 ftp 站点的内容, 还可以访问 ftp 服务器上的其他目录, 解决办法就是用虚拟用户
虚拟用户
1. 创建 FTP 根目录及虚拟用户映射的系统用户
useradd -d /home/vftpuser -s /sbin/nologin vftpuser
为保证其他用户可以访问, 给予 rwxr-xr-x 权限: chmod 755 /home/vftpuser
2. 建立虚拟 FTP 用户数据库文件.
db_load -T -t hash -f vuser_login.txt vuser_login.db
3. 建立支持虚拟用户的 PAM 认证文件
4. 参数 db 用于指向刚刚生成的 vuser_login 文件, 但不要写后缀
Find / -name pam_userdb.so 找到认证文件的路径
4. 在 vsftpd.conf 文件中添加支持配置
- # 以下这些是关于 vsftpd 虚拟用户支持的重要配置项, 默认 vsftpd.conf 中不包含这些设定项目, 需要自己手动添加
- guest_enable=YES // 设定启用虚拟用户功能
- guest_username=vsftpd // 指定虚拟用户的宿主用户
- user_config_dir=/etc/vsftpd/vuser_conf // 设定虚拟用户个人 vsftp 的 CentOS FTP 服务文件存放路径
5. 为虚拟用户设置不同的权限
指定用户独立的权限配置文件存放的目录: VIM /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vsftpd_user_conf)
创建用户独立的权限配置文件存放的目录: mkdir /etc/vsftpd/vsftpd_user_conf
切换进入到该目录中: cd /etc/vsftpd/vsftpd_user_conf
创建 yuzly1 和 yuzly2 文件
设置权限 yuzly1
anon_mkdir_write_enable=YES 允许用户创建文件
anon_world_readable_only=YES 只读
anon_upload_enable=YES 允许 wang 用户上传文件
验证权限, 下图可以看到可以创建文件, 可以上传文件, 但不能修改, 删除
加上 anon_other_write_enable=YES 这句话, 用户就具有修改和删除文件的权限了
yuzly2 不添加任何权限, 默认是可读权限
来源: https://www.cnblogs.com/yuzly/p/10646114.html