记一次艰辛的vsftpd搭建,排错过程

服务器环境:ubuntu 12.04;

vsftpd版本:2.3.5(这个版本有点坑爹)

安装过程都很简单,下面简单的记录下

sudo apt-get install vsftpd    #安装vsftpd

sudo apt-get install db5.1-util  #这里可以按tab键会有提示,一般装最高版本吧,我这里是5.1最高

sudo nano /home/ftplogin.txt  #建立虚拟用户账户和密码文件

sudo db5.1_load -T -t hash -f /home/ftplogin.txt /etc/vsftpd_login.db  #将账户密码文件和数据库关联起来

sudo chmod 600 /etc/vsftpd_login.db  #防止人随意改动数据库

下面是配置PAM认证

auth required pam_userdb.so db=/etc/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd_login

将/etc/pam.d/vsftpd里面的内容清空换成上面的内容

创建vsftpd用户让其不能使用终端

sudo useradd vsftpd -d /home/vsftpd -s /bin/false
sudo chown vsftpd:vsftpd /home/vsftpd


编辑vsftpd.conf
listen=YES
anonymous_enable=NO 
dirmessage_enable=YES 
xferlog_enable=YES 
xferlog_file=/var/log/vsftpd.log 
xferlog_std_format=YES 
chroot_local_user=YES 
guest_enable=YES 
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf 
pam_service_name=vsftpd.vu 
local_enable=YES 
secure_chroot_dir=/var/run/vsftpd

切记后面不能有空格


简历每个用户相应的配置文件如xh
sudo nano /etc/vsftpd_user_conf/xh
#是否可写,如果只配置这个,不配置下面的anon选项也会提示拒绝访问
write_enable=YES
#用户根目录 local_root=/usr/share/nginx/html dirlist_enable=YES download_enable=YES #是否禁止浏览目录,默认是 anon_world_readable_only=NO #是否允许创建文件夹,但不能阻止用户上传文件夹 anon_mkdir_write_enable=YES #是否允许上传文件及文件夹 anon_upload_enable=YES #是否允许用户修改,删除文件和文件夹 anon_other_write_enable=YES

写入进去
到此配置完成,centos下可能还要
setsebool -P ftp_home_dir=1

mysql配置差不多,简历用户然后修改PAM认证就可以了
sudo apt-get install libpam-mysql(前提是已经安装了mysql)

pam认证换成
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
配置好了重启就可以了



这次的排错主要在个人配置文件xh里面,那几个NON选项必须的,否则会无法上传

posted on 2012-06-16 13:06  coolnet  阅读(876)  评论(0编辑  收藏  举报

导航