使用者工具

網站工具


service:proftpd

這是本文件的舊版!


用 mysql 管理 proftpd 帳號

支援

確定 proftpd 有支援 sql module

# proftpd -l | grep sql
mod_sql.c
mod_sql_mysql.c
mod_quotatab_sql.c

建立資料庫

CREATE DATABASE `ftp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

建立使用者資料表

此資料表紀錄使用者的基本資訊,uid 是使用者系統 uid,gid 是使用者 group 的 id,passwd 密碼,homedir 為使用者登入的家目錄,shell 可以為該使用者指定相應的 shell。

CREATE TABLE `ftp` (
`username` varchar( 60 ) default NULL ,
`uid` int( 11 ) NOT NULL ,
`gid` int( 11 ) default NULL ,
`password` varchar( 30 ) default NULL ,
`homedir` varchar( 60 ) default NULL ,
`shell` varchar( 11 ) default '/bin/false',
PRIMARY KEY ( `uid` ) ,
UNIQUE KEY ( `username` )
) TYPE = MYISAM 
;

建立使用者群組資料表

grpname 是群組名稱,gid 是系統組的 ID,members 是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格 例如 3 個使用者 test1 test2 test3 ,members就要寫 (test1,test2,test3)。

CREATE TABLE `groups` (
`groupname` varchar( 30 ) NOT NULL default '',
`gid` int( 11 ) NOT NULL default '0',
`members` text default NULL
) TYPE = MYISAM;

建立 mysql 使用者

建立使用者 proftpd,並指定 ftp 資料庫權限。

proftpd 設定

proftpd.conf

使用 sql.conf 設定,檔案中要有這行:

Include /etc/proftpd/sql.conf

sql.conf

<IfModule mod_sql.c>
SQLBackend  mysql
SQLEngine on
SQLAuthenticate on
SQLAuthTypes Crypt Plaintext
SQLConnectInfo ftp@localhost proftpd Cc:Y6yn9fnH7Zhtx
SQLUserInfo ftp username password uid gid homedir shell
SQLGroupInfo groups groupname gid members
#設定mysql log檔
SQLLogFile /var/log/proftpd/sql.log
PersistentPasswd off
</IfModule>

建立 group

# groupadd ftpgroup

建立 user 和 group 資料

重新啟動 proftpd

# /etc/init.d/proftpd restart
service/proftpd.1211032423.txt.gz · 上一次變更: 2008/05/17 21:53 由 wenpei