隨筆-49  評論-67  文章-27  trackbacks-0

          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 。通常,通過下面的命令:

          pure-pw mkdb

          可以通過 /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 .轉換系統用戶

          可以通過如下命令,將系統用戶轉換為虛擬用戶:

          pure-pwconvert

          如果以 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
          <2006年4月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(12)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏

          • 令你捧腹大笑的38張...(貼圖)
          • 關于struts的upload組件的編碼問題
          •   我們的項目一般都是采用struts,以前一直沒用過它的upload,今天改一個項目的時候(這個項目用了upload,呵呵,不是我寫的),發現不管怎么轉碼,都不會是中文,就算轉對了,也只有一部份是中文,倒...這下可慘了,一部份是中文,這樣的話肯定轉換不成功了(只有upload部份的是亂碼,其它部份都是中文--UTF-8編碼)。 無奈之下就又去apache的網站上下了1.2的(我用的是1.1),想測試一下,結果下載后測試upload組件,依然是亂碼,這樣的話就沒辦法了,肯定是upload部份有問題,然后又把1.2的源碼下載下來,看了一陣,發現果然是struts的upload的問題,它沒有處理charset,找了一會,發現主要是通過CommonsMultipartRequestHandler的handleRequest方法來處理上傳的請求的(修改其它地方也可以),將它的request對象中加入編碼,如下: if(request.getCharacterEncoding()==null){   upload.setHeaderEncoding("UTF-8"); }else{   upload.setHeaderEncoding(request.getCharacterEncoding()); } 這樣的話就可以處理了,經測試也正常。不知道struts為什么不處理,我也郁悶,呵呵....... 我是用1.2的源代碼編譯的,呵呵,放在1.1中也沒有問題,看來這部份沒有做過修改(沒看過它的changelog不知道,哈哈)
          • 牛仔褲的幾大著名品牌
          • 英文email
          • 英文信件格式

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 犍为县| 涞源县| 泸溪县| 平阳县| 青铜峡市| 夹江县| 德惠市| 百色市| 阳原县| 齐河县| 韶山市| 西华县| 泰兴市| 夏邑县| 卢湾区| 东宁县| 乌海市| 乌审旗| 延川县| 梓潼县| 湖口县| 遂川县| 英吉沙县| 丁青县| 敦化市| 吴桥县| 民权县| 黄浦区| 秭归县| 潞西市| 东丰县| 太康县| 那曲县| 奇台县| 凌源市| 明溪县| 仁寿县| 德昌县| 凌云县| 平邑县| 方城县|