PureFTPD虛擬用戶管理詳解

来源:https://www.cnblogs.com/xlpc/archive/2023/10/08/17747943.html
-Advertisement-
Play Games

一、官網下載JDK1.8 https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html JDK1.8 因為1.8是目前項目中用到最多的 基本都是基於JDK1.8 可以直接在虛擬機中的瀏覽器訪問下載,但是嘗試過的 ...


PureFTPD虛擬用戶管理詳解


 

自從 0.99.2 版本開始, pure-ftpd 就開始支持虛擬用戶。虛擬用戶方式十分類似 /etc/passwd ,將用戶的相關信息,如口令、姓名、 uid 、目錄等,存入文件。但是該文件只適用於 FTP 。

這意味著,可以為 FTP 設置虛擬用戶,而不需要在系統中添加系統用戶。同時,可以為這些用戶單獨設置配額、ratio 、帶寬等限制。很多虛擬用戶可以共用同一個系統用戶的屬性,因此建議為這些虛擬用戶單獨創建一個系統用戶,從而方便管理。

1 .簡介

首先,可以在系統中添加相應的用戶和組,如 ftpuser 和 ftpgroup 。如:

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

可以使用 ”pure-pw” 來創建虛擬用戶。虛擬用戶的信息以每個用戶一行的方式存放在相應的文件中,其格式如下所示:

:::::::::::::::::

其中,除了帳號、口令、 uid 、 gid 和 home 目錄之外,其它的可以是空值。

2 .創建一個用戶

接下來,我們來創建一個新的用戶。 pure-pw 的語法規範如下:

pure-pw useradd  [-f ] -u  [-g ]
-D/-d  [-c ]
[-t ] [-T ]
[-n ] [-N ]
[-q ] [-Q ]
[-r [/][,[/]]...]
[-R [/][,[/]]...]
[-i [/][,[/]]...]
[-I [/][,[/]]...]
[-y ]
[-z -] [-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  -n '' :禁用文件配額

pure-pw usermod  -N '' :禁用文件大小配額

pure-pw usermod  -q '' -Q '' :禁用 ratio

pure-pw usermod  -t '' :禁用下載帶寬限制

pure-pw usermod  -T '' :禁用上傳帶寬限制

pure-pw usermod  <-i,-I,-r or -R> '' :禁用 IP 過濾

pure-pw usermod  -z '' :禁用時間段約束

pure-pw usermod  -y '' :禁用併發數限制

4 .刪除一個用戶

刪除一個用的命令語法是:

pure-pw userdel  [-f ] [-m]

這時,用戶的信息會被從指定的 passwd 文件中刪除,但是用戶的 home 目錄會被保留,需要手工刪除。

5 .改變用戶口令

更改一個用戶口令的語法是:

pure-pw passwd  [-f ] [-m]

6 .顯示用戶信息

/etc/pureftpd.passwd 文件中記錄的信息不方便用戶的閱讀,因此 pure-ftpd 提供了顯示用戶信息的命令。其語法是:

pure-pw show  [-f ]

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 。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 元組用於在單個變數中存儲多個項目。 mytuple = ("apple", "banana", "cherry") 元組是 Python 中的 4 種內置數據類型之一,用於存儲數據集合,另外還有列表、集合和字典,它們都具有不同的特性和用途。元組是有序且不可更改的集合。元組使用圓括弧表示。 示例,創建 ...
  • 二:Java 基礎知識 一、標識符和關鍵字 1. 標識符 1. 在java語言中,用來標誌類名、對象名、變數名、方法名、類型名、數組名、包名的有效字元序列,稱為“標識符”; 2. 標識符由字母、數字、下劃線、美元符號組成,且第一個字元不能是數字; 3. java語言區分大小寫; 4. 標誌符命名規則 ...
  • (1)前言:總結三次題目集的知識點、題量、難度等情況 第一次的作業基本就是熟悉一下java基本的語法,這部分Java就算需要自學也並不算難,並且本身就有了一些c語言的基礎,作業的問題主要是我們對於輸入輸出和判斷迴圈語句的使用,總體的難度很低。第二次的作業就是類的使用以及私有化和相關封裝。第三次是是除 ...
  • Dart語言是純面向對象的編程語言,就算是函數(對象的成員函數一般稱為方法)也是對象,它也有類型,那麼函數也可以作為其他函數的參數,或者賦值給其他變數。除此之外,Dart中的函數還有什麼特別之處、它有什麼規則和約束…… ...
  • 相信小伙伴們在日常的開發中,調試代碼時,免不了經常修改代碼,這個時候,為了驗證效果,必須要重啟 Spring Boot 應用。 頻繁地重啟應用,導致開發效率降低,加班隨之而來。有沒有什麼辦法,能讓 Spring Boot 項目熱部署呢,從而不用每次都手點。答案是肯定的。 第一步:添加 spring- ...
  • Capstone 是一款開源的反彙編框架,目前該引擎支持的CPU架構包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone 的特點是快速、輕量級、易於使用,它可以良好地處理各種類型的指令,支持將指令轉換成AT&T彙編語法或Intel彙編語法等多種格式。Capstone的... ...
  • Seata 簡介 傳統的單體應用中,業務操作使用同一條連接操作不同的數據表,一旦出現異常就可以整體回滾。隨著公司的快速發展、業務需求的變化,單體應用被拆分成微服務應用,原來的單體應用被拆分成多個獨立的微服務,分別使用獨立的數據源,業務操作需要調用三個服務來完成。此時每個服務內部的數據一致性由本地事務 ...
  • Css實現瀏覽滾動條效果 前言 也是有大半個月沒有更新文章了,大部分時間都在玩,然後就是入職的事。今天就更新一個小知識,刷抖音的時候看到的,感覺還不錯。 屬性介紹 關鍵屬性animation-timeline:動畫名稱; 用於控制動畫的時間軸。它可以讓你在一個元素上同時播放多個動畫,控制它們的開始時 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...