Apache-2.2

Linux 和 Apache:Apache 虛擬主機的 FTP/SFTP 使用者帳戶?

  • November 2, 2010

問題

我們公司的網站都位於高性能 Web 伺服器上,包括幾個開發和內部項目。

我們的一些網站是需要定期後端更新的公共網站。這些更新由第三方契約 SEO/設計公司進行。

我需要設置一個 FTP 帳戶,第 3 方公司可以使用該帳戶僅通過 FTP(或理想情況下,SFTP)訪問這些站點,以便在那裡修改文件。我不希望他們對我們伺服器的其餘部分或我們的其他網站有任何訪問權限。

例子

為了說明我的情況,讓我們假設我有四個網站在 Apache 中配置為虛擬主機:

internalsite1.com
internalsite2.com
contentsite1.com
contentsite2.com

這些存在於我的伺服器上的以下位置:

/var/www/html/
   /internalsite1.com
   /internalsite2.com
   /contentsite1.com
   /contentsite2.com

現在,我需要“contentsite”主機允許通過 FTP 帳戶訪問以修改文件。“內部站點”主機應該只能由登錄的使用者訪問(即通過標準 SSH)。

** 我試過的 **

今天早些時候,我嘗試修改我的 SSH 配置以使用 OpenSSH 的internal-sftpChrootDirectory特性創建 chroot 使用者。但是,配置變得非常複雜,我不能冒險破壞對我的伺服器的 SSH 訪問,所以我放棄了這種方法。

目前,我正在嘗試弄清楚如何使用vsftpd來實現我的目標;但到目前為止,我只能設置一個可以訪問單個目錄的帳戶。這可能就足夠了,但是 vsftpd 有幾十個選項,並且沒有關於實現這個特定設置的明確文件。

問題

如何啟用單個 ftp 使用者帳戶來訪問伺服器上的多個目錄位置,一個代表每個?

注意:歡迎提供指向清晰教程的連結。

**編輯:**雖然我希望他們通過 SFTP 登錄,但我會接受普通的 FTP 訪問。我只需要在可以訪問相關三個網站位置的伺服器上創建一個 FTP 帳戶。-

考慮對使用者進行 chroot。這是 Ubuntu 的指南,但應該可以適應。

http://ubuntuforums.org/showthread.php?t=858475

這是一個安裝和設置指南scponly,一個提供備用登錄 shell 的包。基本構想是你把一個使用者的登錄shell設置為/usr/bin/scponly,然後那個使用者就只能使用SFTP或者SCP;他/她無法獲得命令行 shell。

scponly軟體包還提供了一個 chroot 選項,包括第二個備用登錄 shell ( /usr/sbin/scponlyc),以及一些額外的設置。請務必在那裡閱讀整個論壇主題,因為其他人在回應主要文章時提供了一些額外的提示。

該指南在某種程度上是特定於 Ubuntu 的,但它應該同樣適用於 Debian 或任何 Debian 派生的發行版。如果你的 Linux 不是這些,你應該仍然可以下載原始碼,自己編譯,然後按照指南中列出的步驟進行操作。

引用自:https://serverfault.com/questions/197361