yum install vsftpd #安装vsftp

db4的支持

rpm -qa|grep db4

如无db4-util/devel可直接yum安装

创建vftp用户

useradd vftpuser -d /data/ftpdata -s /sbin/nologin

cd /etc/vsftpd

添加虚拟用户

cat >>vftpuser<<EOF
vftpusr_1
password
vftpusr_2
password
EOF

奇数行为用户,偶数行为密码。

之后使用db_load工具生成db包

db_load -T -t hash -f vftpuser vftpuser.db

修改/etc/pam.d/vsftpd,可注释原有内容,加上

auth    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/vftpuser
account    required        /lib64/security/pam_userdb.so     db=/etc/vsftpd/vftpuser

注意x86与x86_64位系统区别,也可去掉绝对路径,只写pam_userdb.so

之后修改/etc/vsftpd/vsftpd.conf

listen=YES
anonymous_enable=NO    #不支持匿名访问
use_localtime=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
idle_session_timeout=180
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to www.net.cn FTP service.
ls_recurse_enable=YES
pam_service_name=vsftpd    #即/etc/pam.d/vsftpd
log_ftp_protocol=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list    #文件内所列用户被限制在chroot下
max_per_ip=3
pasv_max_port=40030
pasv_min_port=40000
                                                        
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/user_conf    #虚拟用户权限控制文件夹,在该文件夹下创建与虚拟用户同名的文件
virtual_use_local_privs=YES

重启vsftpd服务

service vsftpd restart

测试访问。

另网上找到关于virtual_use_local_privs的说明

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