1. 安裝 redhat 7.2 或者solaris8
注:solaris8要求自己有c編譯器等工具,我們這里不提供安裝方法,具體可以取www.sunfreeware.com下載gclearcase/" target="_blank" >cc包安裝。
2. 停止缺省的 wu-ftpd服務器
在 ntsysv 里將 wu-ftpd 前的 * 去了,然后保存,然后將 /etc/rc.d/init.d 目錄下的 wu-ftpd 的啟動腳本刪除了。Solaris可以去/etc/services和/etc/.netd.conf注銷。不過最好是不要安裝那個東西,它的安全問題很多!
3.安裝 MYSQL
在 Redhat 的光盤上有的,將 MYSQL 的程序和庫都裝上。(如果安裝 Redhat 時已經 選裝了這步就不用了,當然,如果是solaris的話就沒什么用了,用源代碼包自己編譯吧)
rpm -ivh mysql-3.23.41-1.i386.rpm
rpm -ivh mysql-devel-3.23.41-1.i386.rpm
rpm -ivh mysql-server-3.23.41-1.i386.rpm
|
也可以源代碼安裝
tar –zxvf mysql-3.23.53.tar.gz
cd mysql-3.23.53
./configure –prefix=/usr/local/mysql
make
make install
cd /usr/local/mysql/bin
./ mysql_install_db #初始化
./safe_mysqld –uroot & #啟動mysql
|
4 下載 proftpd-1.2.4.tar.gz
不知道哪兒有下載?FAINT,在搜索引擎上用 "proftpd-1.2.4.tar.gz 下載" 在找, 至少命中100個可以下載的站點
5.準備開始安裝 proftpd
為 proftpd 建立專用的用戶;加一個ftpuser組 id為65533;加一個ftpuser用戶,用戶id為65533,組id為65533
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 = @#組表@#;
?。0选敖M表”改為英文吧
|
7. 設置權限
在 MYSQL 下 GRANT 一個可以存取這個表的用戶(要 select, update 權限)
grant select,update,delete,insert on proftp.*
to yourmysqlid@”%” identified by “passwd”;
|
8. tar -zxvf proftpd-1.2.4.tar.gz
cd proftpd-1.2.4
|
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
|
15.題外話二
可以用 /etc/rc.d/init.d/proftpd stop 來殺所有 proftpd 守護進程,用 /etc/rc.d/init.d/proftpd start 啟動一個進程,要是你不小心啟運了兩次就用一次 STOP 就可以了
16.修改說明
由于我需要在linux和solris下做ftp,找了很多文章,他們基本都是轉載,可能由于原作者用的版本和操作系統的不同,很多地方寫的不是很明白,我干脆把這片比較完整的文章修改一下了發表,希望原作者不要介意。很多內容我并沒修改,我只是加了一些注意的地方。在此,讓我們感謝小樂堡主,是他給我們提供了這么好一片技術文章! 我的系統是redhat8.0和solaris8.0 for sparc版本。