您现在的位置是:首页
>
sql数据库认证 建立数据库认证的FTP
建立数据库认证的FTP roft +my ql认证实现 安装 redhat 或者 olari 注 olari 要求自己有c编译器等工具 我们这里不提供安装方法 具体可以取下载g

建立数据库认证的FTP
proftp+mysql认证实现 安装 redhat 或者solaris 注 solaris 要求自己有c编译器等工具 我们这里不提供安装方法 具体可以取下载gcc包安装 停止缺省的 wu ftpd服务器 在 ntsysv 里将 wu ftpd 前的 * 去了 然后保存 然后将 /etc/rc d/init d 目录下的 wu ftpd 的启动脚本删除了 Solaris可以去/etc/services和/etc/nf注销 不过最好是不要安装那个东西 它的安全问题很多! 安装 MYSQL 在 Redhat 的光盘上有的 将 MYSQL 的程序和库都装上 (如果安装 Redhat 时已经 选装了这步就不用了 当然 如果是solaris的话就没什么用了 用源代码包自己编译吧) rpm ivh mysql i rpm rpm ivh mysql devel i rpm rpm ivh mysql server i rpm 也可以源代码安装 tar –zxvf mysql tar gz cd mysql /configure –prefix=/usr/local/mysql make make install cd /usr/local/mysql/bin / mysql_install_db #初始化 /safe_mysqld –uroot & #启动mysql 下载 proftpd tar gz 不知道哪儿有下载?FAINT 在搜索引擎上用 proftpd tar gz 下载 在找 至少命中 个可以下载的站点 准备开始安装 proftpd 为 proftpd 建立专用的用户;加一个ftpuser组 id为 ;加一个ftpuser用户 用户id为 组id为 在MYSQL下为 proftpd 建数据库和表 #mysql p PASSWORD:****** (自己的口令自己知道) 然后用下列命令 直接拷进去吧 CREATE DATABASE proftpftp; USE proftp; CREATE TABLE users ( userid VARCHAR( ) NOT NULL # 用户名 uid INT UNSIGNED # 用户ID gid INT UNSIGNED # 组ID passwd VARCHAR( ) NOT NULL # 密码 shell VARCHAR( ) # SHELL homedir VARCHAR( ) # 用户目录 count INT UNSIGNED NOT NULL # 登录计数 ) ment = 用户表 ; #这个地方可能没法输入汉字 可改成英文! CREATE TABLE groups ( groupname VARCHAR( ) NOT NULL # 组名 gid INT NOT NULL # 组ID members VARCHAR( ) # 组成员 ) ment = 组表 ; #把 组表 改为英文吧 设置权限 在 MYSQL 下 GRANT 一个可以存取这个表的用户(要 select update 权限) grant select update delete insert on proftp * to yourmysqlid@ % identified by passwd ; tar zxvf proftpd tar gz cd proftpd /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 这个地方也要多多注意 我就是这里出了错误的 make 并 make install 编辑 /usr/local/etc/nf 加上下面的话(须修改一下再加) #先改其它参数 文件本来就有注解的 然后加上下面的 #用户不能访问比自己登录目录更高级别的目录 DefaultRoot ~ #数据库情况 刚刚的GRANT时要是用了IP这里要写 proftp@xxx xxx xxx xxx #用机器名也一样 只有GRANT时用localhost时可以省略@ xxx xxx xxx xxx SQLConnectInfo proftp 用户名 口令 #密码方式为明文 可以为空 #(要是想用 MD 也可以 手册上讲了好多种加密支持) SQLAuthTypes Plaintext Empty #是否不允其它认证方式 #(注意 其它文章里的这个参数是讲错的 小乐就上当过 ) SQLAuthoritative on #不用讲了吧 SQLDefaultGID SQLDefaultUID #用户认证 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 cp /usr/local/mysql/lib/mysql/libmysqlclient so /usr/lib (重要 我是花了好久时间才弄明白的 否则启动不了!!!) 测试 先在 MYSQL 里加用户组 用户 密码留空也可 反正是测试 运行 /usr/local/proftpd/sbin/proftpd ftp localhost 用新加的用户一试 哈哈是不是成了 题外话 要是想把 PROFTPD 放在 ntsysv 里边控制 呵呵加下面的脚本吧 建立 /etc/rc d/init d/proftpd 内容是 #!/bin/sh case $ in start ) echo Starting professional ftp daemon: [OK] /usr/local/proftpd/sbin/proftpd d 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: $ { start | stop } ;; esac exit 可以用 /etc/rc d/init d/proftpd stop 来杀所有 proftpd 守护进程 用 /etc/rc d/init d/proftpd start 启动一个进程 要是你不小心启运了两次就用一次 STOP 就可以了 lishixinzhi/Article/program/Oracle/201311/18445 很赞哦! (1051)