Proftpd建立特殊交流账号


ProFTPD 

图-ProFTPD

Proftpd建立特殊交流帳號 (建立一個 ftpguest 群組!將所有的 guset 設定在這個群組內!

我想,很多朋友都有使用 FTP 網站與其他網站交流的經驗了!您可以給予某些站長一些上傳與下載的權限,並且這些權限是可以保留或者是累積的,真的是很棒啊!在 Windows 系統上面有 Server-U 這個好用的傢伙,那麼我們的 Linux 上頭的 FTP 可以達到這樣的功能嗎?!呵呵! proftpd 就可以!而且設定還真的是很簡單喔!假設我們要達成這樣的功能好了:

主機環境、實體用戶、anonymous 的環境都與前兩節的內容相同;

建立一個群組名為 ftpguest ,如果使用者屬於該群組,則該使用者登入主機之後他的根目錄會在 /var/ftp2 這個目錄下;

有三個使用者,名為 ftpuser1, ftpuser2, ftpuser3 ,都屬於 ftpguest 群組,他們沒有家目錄,不能使用 ssh,但是他們在 /var/ftp2/upload 有寫入的權限,但不可讀取資料;

在 /var/ftp2 內的所有相關下載中,最高流量為 50 Kbytes/second;

ftpuser1 的上傳/下載比例為 1:2 ,且具有 100 MB 的預設下載量; ftpuser2 與 ftpuser3 的上傳/下載比例則為 1:1,僅具有 30MB 的預設下載量;

當使用者進入 /var/ftp2 時,會顯示該使用者的上傳/下載比例,以及剩下的下載容量,還有其他的相關訊息;

與使用者有關的上傳/下載比例以及剩下的可下載容量,都記錄在 /var/ftp2/work/ratio.dat, /var/ftp2/work/ratio.tmp 當中,所以使用者在這個目錄都無法讀、寫!

在這個案例當中,最重要的就是那個『紀錄使用者上傳/下載的 ratio 以及可用空間的記錄檔』了,在我的案例當中,使用的就是 /var/ftp2/work/ratio.dat 這個檔案,請注意,這個檔案必須要能被 ftpuser1, ftpuser2, ftpuser3 所讀取與寫入才行!相當的重要喔!所以,我應該要這樣設計我的設定檔:

1. 建立所需要的群組與使用者:

# 我要建立一個群組為 ftpguest ,此外,所有相關的使用者都是這個群組!

[root@test root]# groupadd ftpguest

[root@test root]# useradd -M -g ftpguest -s /bin/false ftpuser1

[root@test root]# useradd -M -g ftpguest -s /bin/false ftpuser2

[root@test root]# useradd -M -g ftpguest -s /bin/false ftpuser3

[root@test root]# passwd ftpuser1

# 請依序建立 ftpuser1 ftpuser2 ftpuser3 的密碼!

  2. 建立所需要的 FTP 相關路徑

# 我要的路徑在 /var/ftp2 當中,而且 ftpguest 必須要能夠寫入!

[root@test root]# mkdir -p /var/ftp2

[root@test root]# mkdir -p /var/ftp2/upload

[root@test root]# mkdir -p /var/ftp2/work

[root@test root]# chmod -R 775 /var/ftp2

[root@test root]# touch /var/ftp2/work/ratio.dat #底下兩個檔案用在 ratio

[root@test root]# touch /var/ftp2/work/ratio.tmp

[root@test root]# chown -R ftpuser1:ftpguest /var/ftp2

[root@test root]# chmod 666 /var/ftp2/work/*

3. 建立基本的設定檔案:

[root@test root]# vi /usr/local/proftpd/etc/proftpd.conf

# 關於主機,實體用戶,anonymous 的設定如同前兩小節所示,所以我這裡就略過了!

...(沿用上兩小節的設定,這裡略過).....

# 底下則是 /var/ftp2 的設定喔!就是與 ftpguest 有關的設定喔!

DefaultRoot /var/ftp2 ftpguest

DisplayLogin welcome.msg

# 開始設定上傳/下載比例

Ratios on

SaveRatios on

RatioFile /work/ratio.dat

RatioTempFile /work/ratio.tmp

# 上面這兩個檔案需要比較注意!他的路徑與 DefaultRoot 有關係!

# 因為我們的 DefaultRoot 在 /var/ftp2 ,因此,這個檔案在

# 『根目錄為 /var/ftp2 時,路徑為 /work/』也就是說, /work/ratio.dat

# 其實就是 /var/ftp2/work/ratio.dat (因為 / 是 /var/ftp2 喔)

# 這個地方是最容易搞錯的!請再次的看清楚喔! ^_^

# 至於底下的設定就是要讓 /var/ftp2/work 這個目錄下的檔案都無法被使用!

Denyall

# 這裡就是在設定使用者的上傳/下載比例啦!語法為:

# UserRatio "使用者帳號" fileratio filequota byteratio bytequota

#  使用者帳號:就是登入 proftpd 的帳號啊!

#  fileratio :這個是以檔案為基準的『比例』,通常不限制,故為 0

#  filequota :預設能夠下載多少檔案,不限制時為 0

#  byteratio :就是上傳/下載的比例,這個數字代表『 1:下載 』之意!

#  bytequota :預設能夠下載多少 KBytes 的檔案!注意單位喔!

UserRatio ftpuser1 0 0 2 100000 # 上/下比例為 1:2

UserRatio ftpuser2 0 0 1 30000

UserRatio ftpuser3 0 0 1 30000

# UserRatio ftpuser3 0 0 -2 30000

# 上面這行有意思!當下載比例為負值時,表示上/下 比例為 2:1 的意思!

Umask 002

# 這裡就是在進行『下載速度的限制』囉!

TransferRate RETR 50 group ftpguest

Denyall

Allowall

4. 建立歡迎畫面:

# 特別留意,因為我的 ftpguest 群組的根目錄在 /var/ftp2 ,因此,我的

# welcome.msg 就必須放置在 /var/ftp2/welcome.msg 了!

[root@test root]# vi /var/ftp2/welcome.msg

歡迎光臨!這個是鳥哥的測試 FTP 站台喔!

我的主機: %L

目前時間: %T

最大連線: %M

目前連線: %N

您的主機: %R

您的帳號: %U

目前目錄: %C

5. 重新啟動!

[root@test root]# /etc/rc.d/init.d/xinetd restart

這樣就設定妥當,並且也可以正確的啟用囉!

通过鸟哥的5大点,相信你们也能建立属于自己的Proftpd特殊交流账号,希望本文对大家有用!

相关内容