我是喜歡創新和學習新事物的人之一,不久前我不得不安裝和配置FTP服務器,因此我決定以不同於以往的方式進行操作。
在這種情況下,我選擇使用帶有虛擬用戶的 FTP 服務,用戶將儲存在加密檔案中(用戶名、密碼、設定等),所有這些都透過Pure FTPd實現。
在這裡我將向您展示如何做到這一點......好吧,讓我們開始吧
首先,指定本教程中的命令用於Debian等發行版或基於它們的發行版,但是,如果某人在其服務器上使用其他發行版,則他們必須安裝相同的軟件包並使用下面設置的設置,唯一需要更改的內容是安裝命令。
1.首先我們需要安裝 Pure FTPd:
apt-get install pure-ftpd
它將以以下形式結束輸出:
2.該服務已激活,但如果我們沒有正確配置,它將毫無用處。假設我們有一個很長但幾乎是標準的設定檔;它包含一些常規內容,例如禁止匿名使用者存取等等。
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3.好的,假設我們的 FTP 資料夾是 /var/www/ftp/,我們想要建立一個使用者可以將資訊上傳到 /var/www/ftp/sysadmin/ 資料夾的使用者。讓我們在終端機中輸入以下命令:
pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/
這意味著:
pure-pw:用於操作Pure-FTPd用戶的命令
useradd:我們表示將添加一個用戶
sysadmin:我要創建的用戶
-u 2001:該用戶的UserID
-g 2001:該用戶的GroupID
-d / var / www / ftp / sysadmin /:該文件夾將成為該用戶的家,即他們將要上傳內容的位置
輸入上一行時,它將詢問該用戶的密碼。
4.現在需要刷新用戶資料庫檔案。為此,請進入 /etc/pure-ftpd/ 資料夾(cd /etc/pure-ftpd),然後在終端機中輸入以下命令:
pure-pw mkdb
5.現在我們必須啟動 Pure-FTPd,但要指定使用虛擬使用者檔案。首先,讓我們停止該服務:
/etc/init.d/pure-ftpd stop
然後,我們將確保默認情況下它不會正常啟動:
chmod -x /etc/init.d/pure-ftpd
現在,我們以自己的方式啟動服務:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
6.如果您嘗試使用 FileZilla 之類的應用程序,您會發現可以使用創建的用戶順利連接;但是,您將無法複製任何文件或創建目錄。這是因為資料夾 /var/www/ftp/sysadmin/(在本例中為使用者的主目錄)沒有對應的權限。可以透過以下方式解決此問題:
chown -R 2001:2001 /var/www/ftp/sysadmin/
請記住,Uid 和 Gid 2001 是我們建立的使用者的 Uid 和 Gid,我們是使用上一個步驟 3 中的指令建立的
7.要停止該服務,只需在同一終端機上按 [Ctrl]+[C],或在另一個終端機上執行以下操作:
killall pure-ftpd
現在,我們將指示該服務將在服務器啟動時自動從系統啟動,為此,我們修改了/etc/rc.local文件,並在最後一行“ exit 0”之前放置了用於啟動FTP服務的命令:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
換句話說,它看起來像這樣:
您可以使用nano,vi或首選的編輯器來編輯文件,或者,如果願意,可以復制並粘貼以下命令,以使工作更加輕鬆:
perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local
…是的…正如您所讀到的,“facilitate”,這是一個廣泛的命令,是的,但它只是用 perl 和無害的 echo 替換文本
8.完成上述步驟後,重新啟動伺服器,您會看到 pure-ftpd 服務已啟動並準備就緒。
如何刪除用戶?
正如我之前提到的,我們需要使用pure-pw指令來操作使用者。要刪除一個使用者(例如,sysadmin),我們可以使用以下命令:
cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb
請記住,每當對用戶進行更改時,都必須重新生成用戶的虛擬數據庫文件,該文件位於/ etc / pure-ftpd /中,並使用pure-pw mkdb生成/更新該文件。
無論如何,我認為朋友沒有什麼可添加的,請邀請您閱讀pure-pw的幫助,因為它可以為我們提供比我在這裡展示給您的更多的幫助(這只是一個簡短且基本的教程)。
一兩年前,我是那些將所有內容連結到OpenLDAP 或MySQL 的人之一,但隨著時間的推移,我意識到與作為伺服器的資料庫的如此多的連接會產生我們通常無法承受的消耗,因此,完全使用可行的替代方案,例如在應用程式自己的檔案中使用資料庫,如 Pure-FTPd .pdb 的情況
如有任何疑問或疑問,我會盡力提供幫助。
問候和……快樂黑客!