记一次艰辛的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选项必须的,否则会无法上传