免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1177 | 回复: 0
打印 上一主题 下一主题

[FTP] proftp+mysql认证实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-23 14:22 |只看该作者 |倒序浏览
proftp+mysql认证实现

摘要
  proftp和mysql实现认证ftp,在redhat linux和solaris下都可以。


1. 安装 redhat 8 或者solaris9

  注:solaris9要求自己有c编译器等工具,我们这里不提供安装方法,具体可以取www.sunfreeware.com下载gcc包安装。

2. 停止缺省的 wu-ftpd服务器

  在 ntsysv 里将 wu-ftpd 前的 * 去了,然后保存,然后将 /etc/rc.d/init.d 目录下的 wu-ftpd 的启动脚本删除了。Solaris可以去/etc/services和/etc/inetd.conf注销。不过最好是不要安装那个东西,它的安全问题很多!

3.安装 MYSQL

  在 Redhat 的光盘上有的,将 MYSQL 的程序和库都装上。(如果安装 Redhat 时已经 选装了这步就不用了,当然,如果是solaris的话就没什么用了,用源代码包自己编译吧)


  rpm -ivh mysql-3.23.58-1.i386.rpm
  rpm -ivh mysql-devel-3.23.58-1.i386.rpm
  rpm -ivh mysql-server-3.23.58-1.i386.rpm



  也可以源代码安装


  tar –zxvf mysql-3.23.58.tar.gz
  cd mysql-3.23.58
  ./configure –prefix=/usr/local/mysql
  make
  make install
  cd /usr/local/mysql/bin
  ./ mysql_install_db  #初始化
  ./safe_mysqld –uroot &  #启动mysql



4 下载 proftpd-1.2.8.tar.gz

  

5.准备开始安装 proftpd

  为 proftpd 建立专用的用户;加一个ftpuser组 id为654321;加一个ftpuser用户,用户id为654320,组id为654321

6.在MYSQL下为 proftpd 建数据库和表


  #mysql -p
  PASSWORD:****** (自己的口令自己知道)



  然后用下列命令,直接拷进去吧。


  CREATE DATABASE proftpftp;
  USE proftp;
  CREATE TABLE users (
    userid VARCHAR(50) NOT NULL, # 用户名
    uid INT UNSIGNED, # 用户ID
    gid INT UNSIGNED, # 组ID
    passwd VARCHAR(50) NOT NULL, # 密码
    shell VARCHAR(100), # SHELL
    homedir VARCHAR(100), # 用户目录
    count INT UNSIGNED NOT NULL # 登录计数
  ) comment = '用户表';   
  #这个地方可能没法输入汉字,可改成英文!
  CREATE TABLE groups (
    groupname VARCHAR(50) NOT NULL, # 组名
    gid INT NOT NULL, # 组ID
    members VARCHAR(50) # 组成员
  ) comment = '组表';  
  #把“组表”改为英文吧



7. 设置权限

  在 MYSQL 下 GRANT 一个可以存取这个表的用户(要 select, update 权限)


  grant select,update,delete,insert on proftp.*
  to yourmysqlid@”%” identified by “passwd”;



8. tar -zxvf proftpd-1.2.8.tar.gz


  cd proftpd-1.2.8



9.


  ./configure --with-modules=mod_sql:mod_sql_mysql
  --with-includes=/usr/include  
  --with-libraries=/usr/lib/mysql



  (这里的 MYSQL 是用 RPM 安装时的库路径,你可以在根下用 locate 命令找到自己机 器上 MYSQL 库的路径)

  如果是源代码安装的,一定要注意了,


  ./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



  这个地方也要多多注意,我就是这里出了错误的。

10. make 并 make install

11.编辑 /usr/local/etc/proftpd.conf

  加上下面的话(须修改一下再加)


  #先改其它参数,文件本来就有注解的,然后加上下面的
  #用户不能访问比自己登录目录更高级别的目录
  DefaultRoot ~
  #数据库情况,刚刚的GRANT时要是用了IP这里要写 proftp@xxx.xxx.xxx.xxx
  #用机器名也一样,只有GRANT时用localhost时可以省略@ xxx.xxx.xxx.xxx
  SQLConnectInfo proftp 用户名 口令
  #密码方式为明文,可以为空
  #(要是想用 MD5 也可以,手册上讲了好多种加密支持)
  SQLAuthTypes Plaintext Empty
  #是否不允其它认证方式
  #(注意,其它文章里的这个参数是讲错的,小乐就上当过。)
  SQLAuthoritative on
  #不用讲了吧
  SQLDefaultGID 65533
  SQLDefaultUID 65533
  #用户认证
  SQLDoAuth on
  #组有效
  SQLDoGroupAuth on
  #下面的就不用讲了吧,一眼就明白了, 根据你数据表情况写
  SQLUserTable users
  SQLUsernameField userid
  SQLUidField uid
  SQLGidField gid
  SQLPasswordField passwd
  SQLShellField shell
  SQLHomedirField homedir
  SQLLoginCountField count
  SQLGroupTable groups
  SQLGroupGIDField gid
  SQLGroupMembersField members
  SQLGroupnameField groupname
  SQLHomedirOnDemand on 12cp
    /usr/local/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib
   (重要,我是花了好久时间才弄明白的,否则启动不了!!!)



13.测试

  先在 MYSQL 里加用户组,用户,密码留空也可,反正是测试 ,运行 /usr/local/proftpd/sbin/proftpd ftp localhost

  用新加的用户一试,哈哈是不是成了。

14.题外话

  要是想把 PROFTPD 放在 ntsysv 里边控制,呵呵加下面的脚本吧。

  建立 /etc/rc.d/init.d/proftpd 内容是:


  #!/bin/sh  
  case "$1" in
  'start')
  echo "Starting professional ftp daemon: [OK]"
  /usr/local/proftpd/sbin/proftpd -d 1
  touch /var/lock/subsys/proftpd
  ;;
  'stop')
  echo -n "Restarting professional ftp daemon: All Proftpd Process "
  rm -f /var/lock/subsys/proftpd
  killall proftpd
  ;;
  *)
  echo "Usage: $0 { start | stop }"
  ;;
  esac
  exit 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP