图-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特殊交流账号,希望本文对大家有用!
【编辑推荐】
- proftpd.conf 针对匿名者的设置
- proftpd.conf 针对实体用户的设置
- proftpd.conf 的设定方式
- 最简单的 Proftpd.conf 设定档
- Linux下安装配置与管理proftpd
- ProFtpd入门指南
- 启动 ProFTPD (超全)
- 配置 ProFTPD (超全)