參考資料:Google搜尋到的已忘了真正出處了,如有大大知道請告知,小弟再補上,如有侵權,也請告知,小弟將移除

安裝proftp MySQL 模組

 

  [root@linux ~]# yum install proftpd-mysql

建立使用者proftpd'@'localhost 表示用,同時建立同名資料庫 

創建資料表  for ftp 群組:

CREATE TABLE IF NOT EXISTS `ftp_group` (

  `id` int(11) NOT NULL,

  `groupname` varchar(20) NOT NULL,

  `gid` smallint(6) NOT NULL default '5000',

  `members` varchar(20) NOT NULL,

  PRIMARY KEY  (`id`)

)  COMMENT='ProFTPD Group Table' AUTO_INCREMENT=6 ;

創建資料表 for ftp 使用者: 

CREATE TABLE IF NOT EXISTS `ftp_user` (

  `id` int(11) NOT NULL auto_increment,

  `userid` varchar(30) NOT NULL,

  `password` varchar(32) NOT NULL,

  `uid` smallint(6) NOT NULL default '5000',

  `gid` smallint(6) NOT NULL default '5000',

  `home` varchar(255) NOT NULL default '/home/proftpd',

  `shell` varchar(16) NOT NULL default '/sbin/nologin',

  `count` int(10) NOT NULL default '0',

  `address` varchar(50) NOT NULL,

  `accessed` datetime NOT NULL default '0000-00-00 00:00:00',

  `modified` datetime NOT NULL default '0000-00-00 00:00:00',

  PRIMARY KEY  (`id`),

  UNIQUE KEY `userid` (`userid`)

)  COMMENT='ProFTPD User Table' AUTO_INCREMENT=8 ;

修改設定檔: 

[root@linux ~]# vi /etc/proftpd.conf

然後於設定檔當中修改或加入下面資料: 

DefaultRoot ~

RootLogin off

TransferLog /var/log/proftpd/xferlog

SystemLog /var/log/proftpd/system.log

# 帳號不需要有效的shell(某些條件為前提來說,就是不能ssh的帳號(如虛擬帳號)也能登入)

RequireValidShell off

# START config proftpd MySQL

# 使用 mysql 資料庫為主

SQLBackend              mysql

# 密碼認證 PASSWORD() 產生為主

SQLAuthTypes            Backend

#SQLAuthTypes            Crypt Backend Plaintext

SQLAuthenticate         on

# MySQL 連線資訊,資料庫名稱@主機 帳號 密碼

SQLConnectInfo          proftpdb@localhost proftpd password

# 使用者資料庫欄位

SQLUserInfo             ftp_user  userid password uid gid home shell

# 群組資料庫欄位

SQLGroupInfo            ftp_group groupname gid members

# SQL Log 檔,這算比較選擇性的參數。不過我都留著來檢查 SQL 有沒有發生

# 什麼問題,主要是用在 debug 上面。

#SQLLogFile /var/log/proftpd/sql.log

# Home 目錄不存在,會自己產生。

CreateHome      on

#SQLMinID        500

# SQL Log 格式,當正確登入時,要執行的 SQL 語法

SQLLog PASS updatecount

SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now(),address='%h' where userid='%u'" ftp_user

# SQL Log 格式,當儲存或刪除檔案時,要執行的 SQL 語法

SQLLog STOR,DELE modified

SQLNamedQuery modified UPDATE "modified=now() where userid='%u'" ftp_user

然後再重新啟動FTP 

[root@linux ~]# /etc/init.d/proftpd restart

arrow
arrow
    文章標籤
    proftpd
    全站熱搜

    天兒啊 發表在 痞客邦 留言(0) 人氣()