ProFTPd服務(wù)安裝設(shè)置
使用 Proftpd 有個(gè)好處,可以用其它方式認(rèn)證,不用實(shí)體帳號(hào)登入,可以減少試帳號(hào)機(jī)會(huì)。
這次利用mysql 數(shù)據(jù)庫(kù),
環(huán)境:Ubuntu 6.06.1 LTS
1. 安裝 proftpd-mysql 套件
sudo apt-get install proftpd-mysql
2. 設(shè)定 mysql 帳號(hào)
mysql -u root -p
create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
3. 建立mysql資料庫(kù)
- CREATE TABLE ftpgroup (
- groupname varchar(16) NOT NULL default ”,
- gid smallint(6) NOT NULL default ‘5500′,
- members varchar(16) NOT NULL default ”,
- KEY groupname (groupname)
- TYPE=MyISAM COMMENT=’ProFTP group table’;
- CREATE TABLE ftpuser (
- id int(10) unsigned NOT NULL auto_increment,
- userid varchar(32) NOT NULL default ”,
- passwd varchar(32) NOT NULL default ”,
- uid smallint(6) NOT NULL default ‘5500′,
- gid smallint(6) NOT NULL default ‘5500′,
- homedir varchar(255) NOT NULL default ”,
- shell varchar(16) NOT NULL default ‘/sbin/nologin’,
- count int(11) NOT NULL default ‘0′,
- 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)
- ) TYPE=MyISAM COMMENT=’ProFTP user table’;
4. 設(shè)定 proftpd.conf
讓 proftp 可以用 mysql 資料認(rèn)證
- SQLBackend mysql # 使用 mysql 資料庫(kù)為主
- SQLAuthTypes Backend # 密碼認(rèn)證 已 PASSWORD() 產(chǎn)生為主
- SQLAuthenticate on
- SQLConnectInfo ftp@localhost proftpd password # MySQL 連線資訊,資料庫(kù)名稱@主機(jī) 帳號(hào) 密碼
- SQLUserInfo ftpuser userid passwd uid gid homedir shell # 使用者資料庫(kù)欄位
- SQLGroupInfo ftpgroup groupname gid members # 群組資料庫(kù)欄位
- SQLLogFile /var/log/proftpd/sql.log # SQL Log 檔
- SQLHomedirOnDemand on # 當(dāng) Home 目錄不存在,會(huì)自己產(chǎn)生。
- SQLLog PASS updatecount # SQL Log 格式,當(dāng)正確登入時(shí),要執(zhí)行的 SQL 語(yǔ)法
- SQLNamedQuery updatecount UPDATE “countcount=count+1, accessed=now() where userid=’%u’” ftpuser
- SQLLog STOR,DELE modified # SQL Log 格式,當(dāng)儲(chǔ)存或刪除檔案時(shí),要執(zhí)行的 SQL 語(yǔ)法
- SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser
- RequireValidShell off
5. 建立使用者帳號(hào)
- mysql -u root -p
- insert into ftp (userid, passwd , uid, gid , homedir ) values (’ubuntu_user’,password(’12345′), ‘5500′,’5500′,’/home/ftp/ubuntu_user’);
建立 ubuntu_user 帳號(hào),密碼為 12345 ,目錄位于 /home/ftp/ubuntu_user , uid / gid 為此 user 上傳檔案時(shí)的 uid / gid。
6. 重新啟動(dòng) Proftpd
sudo /etc/init.d/proftpd restart
請(qǐng)用剛剛建立好的帳號(hào)登入看看,若順利就可以登入指定目錄內(nèi)。
7. 除錯(cuò)
有任何問(wèn)題,請(qǐng)檢查 sql.log ,會(huì)有資訊說(shuō)明錯(cuò)誤的原因。
【編輯推薦】