1. 安裝 redhat 7.2 或者solaris8
注:solaris8要求自己有c編譯器等工具,我們這里不提供安裝方法,具體可以取www.sunfreeware.com下載gcc包安裝。
2. 停止缺省的 wu-ftpd服務(wù)器
在 ntsysv 里將 wu-ftpd 前的 * 去了,然后保存,然后將 /etc/rc.d/init.d 目錄下的 wu-ftpd的啟動(dòng)腳本刪除了。Solaris可以去/etc/services和/etc/inetd.conf注銷(xiāo)。不過(guò)最好是不要安裝那個(gè)東西,它的安全問(wèn)題很多!
3.安裝 MYSQL
在 Redhat 的光盤(pán)上有的,將 MYSQL 的程序和庫都裝上。(如果安裝 Redhat 時(shí)已經(jīng) 選裝了這步就不用了,當然,如果是solaris的話(huà)就沒(méi)什么用了,用源代碼包自己編譯吧)
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 & #啟動(dòng)mysql
|
4 下載 proftpd-1.2.4.tar.gz
不知道哪兒有下載?FAINT,在搜索引擎上用 "proftpd-1.2.4.tar.gz 下載" 在找, 至少命中100個(gè)可以下載的站點(diǎn)
5.準備開(kāi)始安裝 proftpd
為 proftpd 建立專(zhuān)用的用戶(hù);加一個(gè)ftpuser組 id為65533;加一個(gè)ftpuser用戶(hù),用戶(hù)id為65533,組id為65533
6.在MYSQL下為 proftpd 建數據庫和表
#mysql -p PASSWORD:****** (自己的口令自己知道)
|
然后用下列命令,直接拷進(jìn)去吧。
CREATE DATABASE proftpftp; USE proftp; CREATE TABLE users ( userid VARCHAR(50) NOT NULL, # 用戶(hù)名 uid INT UNSIGNED, # 用戶(hù)ID gid INT UNSIGNED, # 組ID passwd VARCHAR(50) NOT NULL, # 密碼 shell VARCHAR(100), # SHELL homedir VARCHAR(100), # 用戶(hù)目錄 count INT UNSIGNED NOT NULL # 登錄計數 ) comment = ‘用戶(hù)表‘; ?。_@個(gè)地方可能沒(méi)法輸入漢字,可改成英文! CREATE TABLE groups ( groupname VARCHAR(50) NOT NULL, # 組名 gid INT NOT NULL, # 組ID members VARCHAR(50) # 組成員 ) comment = ‘組表‘; ?。0?#8220;組表”改為英文吧
|
7. 設置權限
在 MYSQL 下 GRANT 一個(gè)可以存取這個(gè)表的用戶(hù)(要 select, update 權限)
grant select,update,delete,insert on proftp.* to yourmysqlid@”%” identified by “passwd”;
|
8. tar -zxvf proftpd-1.2.4.tar.gz
9.
./configure --with-modules=mod_sql:mod_sql_mysql --with-includes=/usr/include --with-libraries=/usr/lib/mysql
|
(這里的 MYSQL 是用 RPM 安裝時(shí)的庫路徑,你可以在根下用 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
|
這個(gè)地方也要多多注意,我就是這里出了錯誤的。
10. make 并 make install
11.編輯 /usr/local/etc/proftpd.conf
加上下面的話(huà)(須修改一下再加)
#先改其它參數,文件本來(lái)就有注解的,然后加上下面的 #用戶(hù)不能訪(fǎng)問(wèn)比自己登錄目錄更高級別的目錄 DefaultRoot ~ #數據庫情況,剛剛的GRANT時(shí)要是用了IP這里要寫(xiě) proftp@xxx.xxx.xxx.xxx #用機器名也一樣,只有GRANT時(shí)用localhost時(shí)可以省略@ xxx.xxx.xxx.xxx SQLConnectInfo proftp 用戶(hù)名 口令 #密碼方式為明文,可以為空 #(要是想用 MD5 也可以,手冊上講了好多種加密支持) SQLAuthTypes Plaintext Empty #是否不允其它認證方式 #(注意,其它文章里的這個(gè)參數是講錯的,小樂(lè )就上當過(guò)。) SQLAuthoritative on #不用講了吧 SQLDefaultGID 65533 SQLDefaultUID 65533 #用戶(hù)認證 SQLDoAuth on #組有效 SQLDoGroupAuth on #下面的就不用講了吧,一眼就明白了, 根據你數據表情況寫(xiě) 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 (重要,我是花了好久時(shí)間才弄明白的,否則啟動(dòng)不了?。。。?br> |
13.測試
先在 MYSQL 里加用戶(hù)組,用戶(hù),密碼留空也可,反正是測試 ,運行 /usr/local/proftpd/sbin/proftpd ftp localhost
用新加的用戶(hù)一試,哈哈是不是成了。
14.題外話(huà)
要是想把 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.題外話(huà)二
可以用 /etc/rc.d/init.d/proftpd stop 來(lái)殺所有 proftpd 守護進(jìn)程,用 /etc/rc.d/init.d/proftpd start 啟動(dòng)一個(gè)進(jìn)程,要是你不小心啟運了兩次就用一次 STOP 就可以了
16.修改說(shuō)明
由于我需要在linux和solris下做ftp,找了很多文章,他們基本都是轉載,可能由于原作者用的版本和操作系統的不同,很多地方寫(xiě)的不是很明白,我干脆把這片比較完整的文章修改一下了發(fā)表,希望原作者不要介意。很多內容我并沒(méi)修改,我只是加了一些注意的地方。在此,讓我們感謝小樂(lè )堡主,是他給我們提供了這么好一片技術(shù)文章! 我的系統是redhat8.0和solaris8.0 for sparc版本。