1
.簡介
自從
0.99.2
版本開始,
pure-ftpd
就開始支持虛擬用戶。虛擬用戶方式十分類似
/etc/passwd
,將用戶的相關信息,如口令、姓名、
uid
、目錄等,存入文件。但是該文件只適用于
FTP
。
這意味著,可以為
FTP
設置虛擬用戶,而不需要在系統中添加系統用戶。同時,可以為這些用戶單獨設置配額、
ratio
、帶寬等限制。很多虛擬用戶可以共享同一個系統用戶的屬性,因此建議為這些虛擬用戶單獨創建一個系統用戶,從而方便管理。
首先,可以在系統中添加相應的用戶和組,如
ftpuser
和
ftpgroup
。如:
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
可以使用
”pure-pw”
來創建虛擬用戶。虛擬用戶的信息以每個用戶一行的方式存放在相應的文件中,其格式如下所示:
<account>:<password>:<uid>:<gid>:<gecos>:<home directory>:<upload
bandwidth>:<download bandwidth>:<upload ratio>:<download ratio>:<max number
of connections>:<files quota>:<size quota>:<authorized local IPs>:<refused
local IPs>:<authorized client IPs>:<refused client IPs>:<time
restrictions>
其中,除了帳號、口令、
uid
、
gid
和
home
目錄之外,其它的可以是空值。
2
.創建一個用戶
接下來,我們來創建一個新的用戶。
pure-pw
的語法規范如下:
pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
????? -D/-d <home directory> [-c <gecos>]
????? [-t <download bandwidth>] [-T <upload bandwidth>]
????? [-n <max number of files>] [-N <max Mbytes>]
????? [-q <upload ratio>] [-Q <download ratio>]
????? [-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...]
????? [-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...]
????
?[-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...]
????? [-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...]
????? [-y <max number of concurrent sessions>]
????? [-z <hhmm>-<hhmm>] [-m]
假設我們要創建
joe
這樣一個虛擬用戶,則可以使用如下命令:
pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe
其中,
-u
將虛擬用戶
joe
同系統用戶
ftpuser
關聯在一起。
-d
參數使
joe
只能訪問其
home
目錄。而如果想讓他訪問整個文件系統,可以用
-D
選項。
這時,如果
pure-ftpd
啟動時加入
-j(--createhome)
選項,則不需要創建
/home/ftpuser/joe
目錄。系統會在該用戶第一次登陸時自動創建。
-z
選項運用用戶在一天當中指定的時間段連接服務器。如
-z 0900-1800
,則該用戶只能在上午
9
點到晚上
6
點之間連接服務器。
-r
選項或
-R
選項,可以限制用戶從指定
IP
和掩碼連入服務器
-y
,用戶同一時間的并發連接數。
’’
或者
0
意味著不限制
-f
,默認虛擬用戶的信息會被存放在
/etc/pureftpd.passwd
文件中,通過該選項可以改變該文件的位置。
用戶的口令會根據系統對加密方式的支持情況,選擇一個最安全的方式進行加密。
3
.更改一個用戶
同
pure-pw adduser
唯一不同的是,使用
pure-pw usermod
不是創建一個用戶,而是更改已經存在用戶的某些屬性。
重置某些屬性的語法如下:
pure-pw usermod <user> -n ''
:禁用文件配額
pure-pw usermod <user> -N ''
:禁用文件大小配額
pure-pw usermod <user> -q '' -Q ''
:禁用
ratio
pure-pw usermod <user> -t ''
:禁用下載帶寬限制
pure-pw usermod <user> -T ''
:禁用上傳帶寬限制
pure-pw usermod <user> <-i,-I,-r or -R> ''
:禁用
IP
過濾
pure-pw usermod <user> -z ''
:禁用時間段約束
pure-pw usermod <user> -y ''
:禁用并發數限制
4
.刪除一個用戶
刪除一個用的命令語法是:
pure-pw userdel <login> [-f <passwd file>] [-m]
這時,用戶的信息會被從指定的
passwd
文件中刪除,但是用戶的
home
目錄會被保留,需要手工刪除。
5
.改變用戶口令
更改一個用戶口令的語法是:
pure-pw passwd <login> [-f <passwd file>] [-m]
6
.顯示用戶信息
/etc/pureftpd.passwd
文件中記錄的信息不方便用戶的閱讀,因此
pure-ftpd
提供了顯示用戶信息的命令。其語法是:
pure-pw show <login> [-f <passwd file>]
7
.提交更改
可以通過上面提到的命令,或者以手工方式對
/etc/pureftpd.passwd
文件進行修改,從而創建、修改和刪除一個虛擬用戶信息。但是,只有提交這些更改時,
pure-ftpd
訪問才能生效。
提交更改,意味著系統會根據
/etc/pureftpd.passwd
(或者指定的其它文件)來創建一個
pure-ftpd
可讀的二進制格式的文件
/etc/pureftpd.pdb
。通常,通過下面的命令:
可以通過
/etc/pureftpd.passwd
文件自動創建
/etc/pureftpd.pbd
文件。但是,如果需要指定特定的文件,可以通過下面的方式來實現:
pure-pw mkdb /etc/accounts/myaccounts.pdb -f /etc/accounts/myaccounts.txt
這時,沒有必要去重啟
pure-ftpd
服務,對虛擬用戶進行的更改可以更新。同時,也可以通過
-m
選項,在對
/etc/pureftpd.passwd
文件進行修改的時候自動進行提交。
8
.打開對虛擬用戶的支持
使得
pure-ftpd
支持虛擬用戶,需要在編譯的時候加入選項
--with-puredb
。這時,可以通過在啟動服務是的
’-l’
參數來設置。如:
/usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &
可以在后臺,以自動創建虛擬用戶
home
目錄,用
puredb
的方式來支持虛擬用戶。
9
.轉換系統用戶
可以通過如下命令,將系統用戶轉換為虛擬用戶:
如果以
root
用戶運行該命令,系統用戶的口令一并被轉入虛擬用戶配置文件。如:
pure-pwconvert >> /etc/pureftpd.passwd
10
.環境變量
默認的情況下,如果指定了環境變量
PURE_PASSWDFILE
,則虛擬用戶的
passwd
文件位置由該變量的值指定。否則,默認是
/etc/pureftpd.passwd
。用樣,
PURE_DBFILE
環境變量用來指定
pdb
文件的位置。默認是
/etc/pureftpd.pdb
。
posted on 2006-04-11 00:27
思考 閱讀(3787)
評論(0) 編輯 收藏 所屬分類:
Linux