Proftpd服务安装设置:修订间差异
来自Ubuntu中文
跳到导航跳到搜索
创建新页面为 '45465465' |
使用 Proftp 有個好處,可以用其它方式認證,不用實體帳號登入,可以減少試帳號機會。 這次利用mysql 資料庫, 環境:Ubuntu 6.06.1 LTS 1. 安裝 proftpd-mysql 套件 sudo apt-get install proftpd-mysql 2. 設定 |
||
第1行: | 第1行: | ||
使用 Proftp 有個好處,可以用其它方式認證,不用實體帳號登入,可以減少試帳號機會。 | |||
這次利用mysql 資料庫, | |||
環境:Ubuntu 6.06.1 LTS | |||
1. 安裝 proftpd-mysql 套件 | |||
sudo apt-get install proftpd-mysql | |||
2. 設定 mysql 帳號 | |||
mysql -u root -p | |||
create database ftp; | |||
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’; | |||
FLUSH PRIVILEGES; | |||
3. 建立mysql資料庫 | |||
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. 設定 proftpd.conf ,讓 proftp 可以用 mysql 資料認證 | |||
SQLBackend mysql # 使用 mysql 資料庫為主 | |||
SQLAuthTypes Backend # 密碼認證 已 PASSWORD() 產生為主 | |||
SQLAuthenticate on | |||
SQLConnectInfo ftp@localhost proftpd password # MySQL 連線資訊,資料庫名稱@主機 帳號 密碼 | |||
SQLUserInfo ftpuser userid passwd uid gid homedir shell # 使用者資料庫欄位 | |||
SQLGroupInfo ftpgroup groupname gid members # 群組資料庫欄位 | |||
SQLLogFile /var/log/proftpd/sql.log # SQL Log 檔 | |||
SQLHomedirOnDemand on # 當 Home 目錄不存在,會自己產生。 | |||
SQLLog PASS updatecount # SQL Log 格式,當正確登入時,要執行的 SQL 語法 | |||
SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() where userid=’%u’” ftpuser | |||
SQLLog STOR,DELE modified # SQL Log 格式,當儲存或刪除檔案時,要執行的 SQL 語法 | |||
SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser | |||
RequireValidShell off | |||
5. 建立使用者帳號 | |||
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 帳號,密碼為 12345 ,目錄位於 /home/ftp/ubuntu_user , uid / gid 為此 user 上傳檔案時的 uid / gid。 | |||
6. 重新啟動 Proftp | |||
sudo /etc/init.d/proftpd restart | |||
請用剛剛建立好的帳號登入看看,若順利就可以登入指定目錄內。 | |||
7. 除錯 | |||
有任何問題,請檢查 sql.log ,會有資訊說明錯誤的原因。 |
2010年4月18日 (日) 13:41的最新版本
使用 Proftp 有個好處,可以用其它方式認證,不用實體帳號登入,可以減少試帳號機會。
這次利用mysql 資料庫,
環境:Ubuntu 6.06.1 LTS
1. 安裝 proftpd-mysql 套件
sudo apt-get install proftpd-mysql
2. 設定 mysql 帳號
mysql -u root -p
create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
3. 建立mysql資料庫
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. 設定 proftpd.conf ,讓 proftp 可以用 mysql 資料認證
SQLBackend mysql # 使用 mysql 資料庫為主
SQLAuthTypes Backend # 密碼認證 已 PASSWORD() 產生為主
SQLAuthenticate on
SQLConnectInfo ftp@localhost proftpd password # MySQL 連線資訊,資料庫名稱@主機 帳號 密碼
SQLUserInfo ftpuser userid passwd uid gid homedir shell # 使用者資料庫欄位
SQLGroupInfo ftpgroup groupname gid members # 群組資料庫欄位
SQLLogFile /var/log/proftpd/sql.log # SQL Log 檔
SQLHomedirOnDemand on # 當 Home 目錄不存在,會自己產生。
SQLLog PASS updatecount # SQL Log 格式,當正確登入時,要執行的 SQL 語法
SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() where userid=’%u’” ftpuser
SQLLog STOR,DELE modified # SQL Log 格式,當儲存或刪除檔案時,要執行的 SQL 語法
SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser
RequireValidShell off
5. 建立使用者帳號
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 帳號,密碼為 12345 ,目錄位於 /home/ftp/ubuntu_user , uid / gid 為此 user 上傳檔案時的 uid / gid。
6. 重新啟動 Proftp
sudo /etc/init.d/proftpd restart
請用剛剛建立好的帳號登入看看,若順利就可以登入指定目錄內。
7. 除錯
有任何問題,請檢查 sql.log ,會有資訊說明錯誤的原因。