一、安装 vsftpd
二、创建本地系统用户 vsftpd,并且禁止该用户登录访问系统
[root@RicenOS ~]# useradd -d /home/vsftpd -s /bin/false vsftpd
[root@RicenOS ~]# mkdir -pv /etc/vsftpd
三、创建虚拟用户列表
内容如下:
12345678
Smart
87654321
其中,第一行为第一个用户的帐号 ricen,第二行为 ricen 用户的密码。第三行为第二个用户的帐号 smart,第四行为 smart 用户的密码。以此类推……
四、创建虚拟用户数据库
[root@RicenOS ~]# db5.3_load -T -t hash -f /etc/vsftpd/ftpusers /etc/vsftpd/vsftpd_login.db
[root@RicenOS ~]# chmod 600 /etc/vsftpd/vsftpd_login.db
五、配置 PAM 文件
把里面的内容全部注释掉,并添加以下两行代码:
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
六、配置 vsftpd
1、将“listen=NO”改为“listen=YES”,将“listen_ipv6=YES”注释掉。
2、去掉“#write_enable=YES”和“#local_umask=022”前的注释。
3、去掉“#ascii_upload_enable=YES”和“#ascii_download_enable=YES”前的注释。
4、去掉“#chroot_local_user=YES”前的注释,阻止用户向上级切换目录。
5、添加“allow_writeable_chroot=YES”,解决 vsftpd 用户因为 home 目录为 root 权限而无法登录问题。
6、添加“guest_enable=YES”,开启虚拟用户。
7、添加“guest_username=vsftpd”,虚拟用户对应的系统用户 vsftpd。
8、添加“user_config_dir=/etc/vsftpd/vusers”,设置用户配置文件的存放目录。
9、添加“virtual_use_local_privs=YES”,使用虚拟用户和本地用户有相同权限。
七、配置虚拟用户权限
以 ricen 用户为例,创建用户配置文件:
内容如下:
local_root=/opt/websites
# 开放 ricen 的下载权限
anon_world_readable_only=NO
# 开放 ricen 的上传权限
anon_upload_enable=YES
# 开放 ricen 创建目录的权限
anon_mkdir_write_enable=YES
# 开放 ricen 删除和重命名的权限
anon_other_write_enable=YES
# 虚拟用户的上传掩码
anon_umask=022
把虚拟用户根目录的权限赋给虚拟用户映射的本地系统用户 vsftpd:
重启 vsftpd,使以上配置生效:
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.