ChinaUnix.net
 >> ChinaUnix.net > Solaris

[分享]proftpd+mysql认证安装心得

作者:worldwave     发表时间:2002/11/23 11:13am

[这个贴子最后由worldwave在 2002/12/04 08:35am 编辑]

昨晚在solaris上安装了proftpd+mysql,小弟我是个菜鸟,查询了好多东东才把它搞定,
今天一早起来就把安装的心得整理了一下,还望各位大哥指正。


一.安装mysql

# 编译安装 mysql

#如果在solaris中,首先解决gcc的路径问题,否则gcc无法正常工作
#============================================
PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/bin
export PATH
#===========================================

gzip -d mysql-3.23.47.tar.gz
tar -xvf mysql-3.23.47.tar
cd mysql-3.23.47
./configure --prefix=/usr/local/mysql
make
make install
cd /usr/local

#下面这一步很重要,否则mysql起不来
chown -R mysql mysql

scripts/mysql_install_db

#让mysql自启动

#在solaris中
cd /etc/rc2.d
创建S67mysql文件
==========================
#! /bin/sh
/usr/local/mysql/bin/safe_mysqld &
==========================

#在linux中
vi /etc/rc.d/rc.local
#只要修改rc.local,加入你要自启动的mysql可执行文件名和路径即可

#启动mysql
cd /usr/local/mysql/bin/
./safe_mysqld &
#修改root密码
./mysqladmin -u root password 'your password'

二.安装proftd
gzip -d proftd-1.2.6.tar.gz
tar -xvf proftd-1.2.6.tar
#不好意思,以前漏了下面这几步。
cp mod_sql-4.08.tar.gz proftd-1.2.6/contrib/
cd proftd-1.2.6/contrib/
gzip -d mod_sql-4.08.tar.gz

cd proftd-1.2.6
./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql --with-includes=/usr/local/mysql/include --with-libraries=/usr/local/mysql/lib/mysql
make
make install

#替换proftpd.conf
mv /usr/local/proftpd/etc/proftpd.conf /usr/local/proftpd/etc/proftpd.bak
cp contrib/mod_sql.conf /usr/local/proftpd/etc/proftpd.conf

#配置proftpd.conf
vi /usr/local/proftpd/etc/proftpd.conf
#==========================================
1.修改
SQLConnectInfo dbname@host:port username password
为你的数据库的相应连接参数。

2.修改
SQLUserInfo ftpusers username password uid gid NULL NULL
改为
SQLUserInfo ftpusers userid passwd uid gid homedir shell
这是使用FTP帐号的表名和字段名。

3.在
SQLDefaultHomedir "/tmp"
的行首加上"#"注释符。

4.将
# SQLGroupInfo groups groupname gid members
前面的"#"注释符去掉,这是组信息。 如果不需要匿名登录,将
<Anonymous ~ftp>

</Anonymous>
之间的内容前都加上"#"注释符。

5.将
"Group nogroup"
改为
"Group nobody"

#====================================================

#====================================================

# groups表的结构 `groups`

CREATE TABLE groups (
 groupname varchar(255) binary NOT NULL default '',
 gid int(11) NOT NULL default '0',
 members text NOT NULL,
 PRIMARY KEY  (groupname)
) TYPE=MyISAM;


#插入一个组 `groups`

INSERT INTO groups VALUES ('ftpgroup', 10000, 'ftpuser');
-----------------------------------------------------------
# ftpusers表的结构 `ftpusers`

CREATE TABLE ftpusers (
 userid varchar(255) binary NOT NULL default '',
 passwd varchar(255) binary NOT NULL default '',
 uid int(11) default NULL,
 gid int(11) default NULL,
 homedir varchar(255) default NULL,
 shell varchar(255) default NULL,
 count int(11) default NULL,
 PRIMARY KEY  (userid),
 FULLTEXT KEY homedir (homedir),
 FULLTEXT KEY homedir_2 (homedir)
) TYPE=MyISAM;

# 插入一个用户 `ftpusers`

INSERT INTO ftpusers VALUES ('ftp', password('ftp'), 10000, 10000, '/export/home/sun', '/bin/bash', 0);
#当然你要保证有/export/home/sun这个目录

#===============================================================================

#让mysql自启动

#在solaris中
vi /etc/inetd.conf
#修改ftp这一句为
ftp     stream  tcp6    nowait  root    /usr/local/proftpd/sbin/proftpd proftpd

#在linux中
vi /etc/rc.d/rc.local
#只要修改rc.local,加入你要自启动的proftpd可执行文件名和路径即可


#下面一步很重要,否则会出现如下错误
#=================================================================
[root@ftp sbin]# ./proftpd
./proftpd: error while loading shared libraries: libmysqlclient.so.10: cannot
open shared object file: No such file or directory  
#=================================================================

cp /usr/local/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib/libmysqlclient.so.10


#启动proftpd
cd /usr/local/proftpd/sbin/
./proftpd start

#OK!安装完成


此文章相关评论:
该文章有16个相关评论如下:(点这儿可以发表评论)
mynix 发表于: 2002/11/23 11:28am
加精
 
worldwave 发表于: 2002/11/23 11:28am
有一个问题:
我设置了gcc路径后
PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/bin
export PATH
重起之后,这个路径又没了,怎么做才能使这个路径重起之后也不丢失呢?
 
diag 发表于: 2002/11/23 12:17pm
WELL DONE
 
yuantong 发表于: 2002/11/23 01:31pm
[quote][b]下面引用由[u]worldwave[/u]在 [i]2002/11/23 11:28am[/i] 发表的内容:[/b]
有一个问题:
我设置了gcc路径后
PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/bin
export PATH
...
[/quote]

你在根目录下编辑.profile,注意是前面有一个点的,将上面的语句加入并存盘,重启后就可以找到GCC的路径的了

 
worldwave 发表于: 2002/11/23 01:40pm
我的根目录下没有.profile这个文件,只有.dtprofile
一样吗?
 
cxsztl 发表于: 2002/11/23 05:18pm
.profile需要自己創建。
 
坚持向左 发表于: 2002/11/23 05:20pm
cp /etc/skel/local.profile /.profile
 
worldwave 发表于: 2002/11/27 10:15pm
还有一个问题,能不能用mysql控制特定用户对特定的目录的特定的权限?
 
YT 发表于: 2002/11/27 10:35pm
worldwave ,以后多多关照关照偶啊~~!!

真厉害。。<佩服ing...>

 
worldwave 发表于: 2002/11/27 10:45pm
YT老大,你别笑我的,我的问题你还没回答呢?可以控制吗?
 
worldwave 发表于: 2002/11/28 12:50pm
不能控制吗,怎么没人理啊?
 
YT 发表于: 2002/11/28 01:47pm
mysql我不熟,真的不敢回答你。。。
这是要负责任的。。
 
worldwave 发表于: 2002/11/29 00:05am
我可能没有说清楚,呵呵,不好意思。我的意思是在proftpd中能不能用mysql控制某个FTP用户对特定的目录的权限?
 
YT 发表于: 2002/11/30 00:59am
可以的。
 
worldwave 发表于: 2002/12/02 02:57pm
老大,你不要卖关子好不好啊。
给说说
你分几个post我不管
只要你给说明白......
 
hmkart 发表于: 2002/12/04 08:15pm
好好好呀
按照所说成功了
可我的mysql编译有问题, 是到sunfreeware下的
编译出错。
无法自启动。每次都要我手工启动 mysql和proftp
 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者