好多年没碰代码了,忽然被朋友挖来搞网页,搞完后为方便维护,开始搞ftp上传,什么都没问题但想到了以后维护和安全性,还是用回虚拟用户吧,加上LAMP本来就有的MySQL,想都不想就开干,结果碰壁了。
摸了几天,问题解决了,想着记录下:
首先安装vsftpd+MySQL,为了方便使用,装上PHPmyadmin(这样新系统就装好了LAMP+vsftpd)
apt-get install -y vsftpd mysql-server mysql-client libmysqlclient-dev phpmyadmin
设置下MySQL的root密码,基本环境搭建成功!
PS:16.04已经有pam不用安装,但是有个bug,配置后出现530,后面有解决办法
下面我们来简单配置下
vi /etc/vsftpd.conf
找到
write_enable=YES
local_umask=022
在末端添加下面的
guest_enable=YES
guest_username=webuser
保存退出。
创建新用户,用于ftp管理
useradd ftpuser -d /home/vsftpd -s /bin/false
新建用户文件夹
mkdir /home/vsftpd
配置链接文件
vi /etc/pam.d/vsftpd
注息全部内容并添加以下两行:
auth required pam_mysql.so user=root passwd=MySQL密码 host=localhost db=数据库名 table=表名 usercolumn=用户名键名 passwdcolumn=密码键名 crypt=0
account required pam_mysql.so user=root passwd=MySQL密码 host=localhost db=数据库名 table=表名 usercolumn=用户名键名 passwdcolumn=密码键名 crypt=0
PS:红色部分为自定义的,按在自己的需求改,最后一个参数:0为明码,1为encrypted()函数,2为password(),3为md5加密,按需选择
保存退出
重启vsftpd
/etc/init.d/vsftpd restart
上传补丁: libpam-mysql_0.7-RC1-4ubuntu3_amd64.deb 直接点击下载,ssh上传
安装
dpkg -i libpam-mysql_0.7-RC1-4ubuntu3_amd64.deb
创建虚拟用户home目录
mkdir /home/vsftpd/用户名
下面的就是在MySQL中建立用户数据,按照/etc/pam.d/vsftpd中的内容处理即可,注意的是/home/vsftpd/中建立的文件夹名必须与数据库中的用户名相同
如果还需要什么配置,自己可以上百度学习下vsftpd.conf的内容
这次主要的阻碍就是,16.04的系统在没有补丁的情况下出现530错误,我也试过用db,也样530报错,估计原因是pam的链接问题,打上补丁后问题解决