- 论坛徽章:
- 0
|
单位新购置一台服务器,一直使用的系统是centos5.8,数据库中mysql5.0.92,ftp是VSFTP2.0.6,在安装环境时,打算在新的服务器上更换mysql版本,从5.0换到5.5,目前最新的是5.5.34,数据库与VSFTP都是独立编译,非yum安装,主要方便系统维护,在vmware下测试,发现更换MYSQL版本后,出现530无法验证登录..以下贴出相关操作
=========web布局目录===============
/myweb 主目录
/myweb/mysql 数据库目录
/myweb/vsftp FTP目录(只是保存编译好的文件)
/myweb/vsftp/temp 匿名系统用户目录
/myweb/admin_host 相关参数保存目录
/myweb/admin_host/vsftp 虚拟帐号权限存放目录
=========web用户================
创建一个名字为 myweb 的组
该组下有两个帐号
mysql 与 vsftp
# groupadd myweb
# useradd -g myweb -s /sbin/nologin -M mysql
# useradd -g myweb -d /myweb/vsftp/temp -s /sbin/nologin -M vsftp
=======================================
正常编译安装MYSQL5.0,指定安装目录,其它参数跳过,安装完后以用户组设置权限
--prefix=/myweb/mysql"
编译好后,指定运行帐号,并进行初始化数据库
# bin/mysql_install_db --user=mysql
修改数据库[root]用户的密码,修改前必须启动服务器,密码为[123456]
# bin/mysqladmin -u root password 123456
安装PAM_MYSQL模块
编译时指定参数为mysql的安装路径
# ./configure --with-mysql=/myweb/mysql
编译后将模块复制到[/myweb/mysql/other_so]目录下
# mkdir /myweb/mysql/other_so
# cp /lib/security/pam_mysql.so /myweb/mysql/other_so/pam_mysql.so
==============完成mysql5.0的安装,其实也是普遍的常规安装,以下详细说一下vsftp的安装========================
我使用的版本是vsftp2.0.6,解决了gdk编码错误问题
编译前,设置文件FTP支持模块
# vi builddefs.h
内容如下
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL
保存并完成编译,得出四个文件 [vsftpd],[vsftpd.conf.5],[vsftpd.8],[vsftpd.conf],还有一个目录[RedHat],及目录下一个文件[vsftpd.pam]
将编译出来的相关文件复制到FTP目录下,操作前保证当前命令行在解压目录中 # cp vsftpd /myweb/vsftp/bin/vsftpd
# cp vsftpd.conf.5 /myweb/vsftp/bin/vsftpd.conf.5
# cp vsftpd.8 /myweb/vsftp/bin/vsftpd.8
# cp RedHat/vsftpd.pam /myweb/vsftp/bin/vsftpd.pam
# cp vsftpd.conf /myweb/vsftp/bin/vsftpd.conf
修改vsftpd.pam,令FTP与MYSQL结合,注:这里修改的是复制后在FTP目录下的vsftpd.pam
# vi /myweb/vsftp/bin/vsftpd.pam
内容如下
auth required /myweb/mysql/other_so/pam_mysql.so user=root passwd=123456 host=localhost db=host_db table=vsftp_us usercolumn=name passwdcolumn=passwd crypt=2
account required /myweb/mysql/other_so/pam_mysql.so user=root passwd=123456 host=localhost db=host_db table=vsftp_us usercolumn=name passwdcolumn=passwd crypt=2
对vsftpd.conf进行相关设置,同样是复制后在FTP目录下
# vi /myweb/vsftp/bin/vsftpd.conf
内容如下
listen=YES
local_enable=YES
guest_enable=YES
guest_username=vsftp
pam_service_name=vsftpd.pam
user_config_dir=/myweb/admin_host/vsftp/ 这里是虚拟帐号权限存放目录
guest_username=vsftp 这里使用的帐户为系统的宿主用户
xferlog_file=/myweb/vsftp/vsftpd.log 另外对VSFTP设置文件中的[xferlog_file]日志保存路径进行设置
登录MYSQL,创建ftp验证时使用的数据库及表,注意MYSQL所在路径
# /myweb/mysql/bin/mysql -u root -p
输入MYSQL数据库[root]帐号的密码
创建数据库名称为[host_db],注意上面的pam_mysql文件的设置
create database host_db;
选择刚建的库
use host_db;
创建一个表,名称为[vsftp_us]
create table vsftp_us (
id int AUTO_INCREMENT NOT NULL,
name char(20) binary NOT NULL,
passwd char(4 binary NOT NULL,
primary key(id)
);
创建一个测试的虚拟FTP帐号[text],密码为[123456],注:这里只是保存FTP虚拟帐号及密码
insert into vsftp_us(name,passwd) values('text',password('123456'));
进入虚拟帐号存放目录,并创建虚拟帐号,注该目录与必须设置文件中的[user_config_dir]参数对应
# cd /myweb/admin_host/ftp_us
创建的测试帐号名称[text],创建文件
# vi text
添加以下内容,其中[local_root]参数为该虚拟帐号的根目录
local_root=/myweb
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=022
=============到这步,所有FTP编译安装及设置完成,这里仅限指定的目录[/myweb/vsftp]下的文件,现在可以复制到系统中=============
先进入FTP目录
# cd /myweb/vsftp/bin/再进行复制
# cp vsftpd /usr/local/sbin/vsftpd
# cp vsftpd.conf.5 /usr/local/share/man/man5/vsftpd.conf.5
# cp vsftpd.8 /usr/local/share/man/man8/vsftpd.8
# cp vsftpd.pam /etc/pam.d/vsftpd.pam
# cp vsftpd.conf /etc/vsftpd.conf
编辑/etc/rc.d/rc.local,将加入系统服务中
# vi /etc/rc.d/rc.local
在文件最后插入下列内容:
/usr/local/sbin/vsftpd /etc/vsftpd.conf &
启动FTP
# vsftpd &
测试FTP,帐号[text]能正常登录由于我是在vmware下测试,有用快照,在同一环境下,除了MYSQL5.0与MYSQL5.5安装不同外,其它编译安装的都一样,更换MYSQL5.5版本后,则无法登录出现530
新人贴,初来报道,烦请大虾帮忙解决.. |
|