[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即可