[Note] Setup FTP server on Opensuse

本文是採用pure-ftpd作為我們的ftp server,有試過常見的vftpd,但權限等問題難以釐清,故捨棄。

安裝步驟

  • 於terminal鍵入"yast2"
  • 選擇"軟體" -> "軟體管理"
  • 輸入"pure-ftpd"做搜尋 -> 按下enter選擇 -> 按下F10接受並開始安裝

設定開機啟動

chkconfig pure-ftpd 35	# 設定開機時啟動pure-ftpd服務

FTP設定

1. 修改設定檔案

vi /etc/pure-ftpd/pure-ftpd.conf

找到以下屬性設定值做修改(可使用/做搜尋)

AnonymousOnly    yes>
NoAnonymous     no
AutoRename    no
NoRename    no

上述設定主要是將匿名登入功能關閉,以local user(在/etc/passwd內的帳戶)認證授權為主,並給予使用者做修正檔名的權限

rcpure-ftpd start	# others: start, restart, stop

2. 設定虛擬帳號

設定pure-ftpd.conf

vi /etc/pure-ftpd/pure-ftpd.conf

找到以下屬性設定值做修改(可使用/做搜尋)

PureDB     /etc/pure-ftpd/pureftpd.pdb
CreateHomeDir      yes

重啟服務

rcpure-ftpd start

建立虛擬帳號所共用的ftp專屬帳號

groupadd virtualgrp	# 專屬帳號的主要群組
useradd -g virtualgrp -m virtualuser	# ftp專屬帳號

建立虛擬帳號

pure-pw useradd tina -u virtualuser -d /home/virtualuser/tina
mkdir /home/virtualuser/tina
pure-pw mkdb	# 更新認證資料庫,只要虛擬帳戶的密碼(/etc/pure-ftpd/pureftpd.passwd)有更動都需執行此指令
pure-pw useradd tina -u virtualuser -d /home/virtualuser/tina -m	# 或在建立虛擬帳號同時加入-m參數便可順便建立認證資料

3. 虛擬帳戶內容詳細設定(Optional)

pure-pw usermod tina -t 100 -T 50 -q 1 -Q 10 -n 30 -N 2 -z 1400-2230 -r 192.168.5.0/24,192.168.1.0/24 -m
pure-pw show tina	# 檢驗設定後的結果
pure-pw passwd tina -m	# 修改虛擬帳戶密碼,並更新認證資料庫
pure-pw userdel tina -m	# 刪除虛擬帳戶
參數說明:
-t、-T:設定下載及上傳頻寬。
-q、-Q:設定上傳/下載比率。
-n:限定可使用的檔案數。
-N:限制可使用的空間大小(MB)。
-z:限定連線時間。
-r:允許存取的來源端。

4. 修改Port(Optional)

vi /etc/pure-ftpd/pure-ftpd.conf

約在218行處,本來是註解成"#Bind 127.0.0.1,21"

若需要改port為5566,並且接受所有IP位址對ftp server的requests,則為:
Bind 0.0.0.0,5566

0.0.0.0代表接受所有ip

pure-pw小結

pure-pw就像是在虛擬帳號環境內的CLI,舉凡在正常shell下有關user的指令,像是usermod, useradd, userdel等等,同理可針對虛擬帳號做相對應動作,只需要在指令前加上pure-pw即可

參考資料