====== 创建虚拟用户 ====== 先创建个 ftpuser.txt 内容: admin passadmin test passtest 装数据库 db (注: db3 没有了 要db4) apt-get install db4.8-util 生成数据库 db4.8_load -T -t hash -f ftpuser.txt /etc/vsftpd_login.db 设置权限 chmod 600 /etc/vsftpd_login.db 二 配置PAM 修改/etc/pam.d/vsftpd 内容如下: auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login 为虚拟用户创建本地用户 useradd -d /home/ftpsite -s /sbin/nologin virtual mkdir /home/ftpsite chown virtual.virtual /home/ftpsite ls -ld /home/ftpsite drwxr-sr-x 2 virtual virtual 48 2006-08-18 05:48 /home/ftpsite 根据需要创建/etc/vsftpd.conf,但要确保含有一下设置: anonymous_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=virtual listen=YES listen_port=21 pasv_min_port=30000 pasv_max_port=30999 重启 vsftpd OK\\ 原文 http://debian.linuxsir.org/doc/inthedebianway/vsftpd/vsftpd.conf-7.html 注: vsftp默认 匿名 不能在根目录上传 建立文件 出现500错误的时候 是/home/ftp 的权限问题 ftp用户不能有写的权限 如果需要匿名上传 在 /home/ftp 目录下 建立一个 ftp:ftp 所有的 目录 即可使用匿名上传 例: mkdir upload chown ftp:ftp upload 虚拟用户 如果不能登入 请注释掉 /etc/pam.d/vsftpd 里的 #@include common-account #@include common-session #@include common-auth #auth required pam_shells.so ---- ====== 现在使虚拟用户 使用不同的目录 ====== 首先 编辑vsftp.conf 增加 user_config_dir=/etc/vsftpd/vsftpd_user_conf 然后 mkdir /etc/vsftpd mkdir /etc/vsftpd/vsftpd_user_conf 建立 虚拟用户名字的文本文件 例如:你一个虚拟用户名字为 test touch /etc/vsftpd/vsftpd_user_conf/test 编辑test 加入test的目录 local_root=/home/test (test的目录 要更改为 virtual用户的权限) mkdir test chown virtual:virtual test