好多年没碰代码了,忽然被朋友挖来搞网页,搞完后为方便维护,开始搞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=YESlocal_umask=022在末端添加下面的
guest_enable=YESguest_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=0account required pam_mysql.so user=root passwd=MySQL密码 host=localhost db=数据库名 table=表名 usercolumn=用户名键名 passwdcolumn=密码键名 crypt=0PS:红色部分为自定义的,按在自己的需求改,最后一个参数: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的链接问题,打上补丁后问题解决
新闻热点
疑难解答