Ubuntu

ProFTPD 虛擬使用者目錄

  • January 18, 2016

好的,我正在嘗試通過 SQL 驗證虛擬使用者並將他們重定向/監禁到他們的目錄來複製網路託管公司的基本設置。我已經完成了這裡的大部分目標,除了將它們重定向/監禁到他們的目錄。

目錄儲存在/home/ftp其中,這DefaultRoot就是設置的內容。我希望每個單獨的使用者都擁有並被監禁到他們自己的目錄中。SQL中的設置似乎沒有homedir任何效果。在使用任何使用者登錄 FTP 時,它會在DefaultRoot沒有目錄監禁或重定向的情況下登錄。

我如何完成這最後一項任務?

嘗試註釋掉 DefaultRoot 我認為它可能會覆蓋從數據庫後端讀取的值。

編輯:

如果設置了 DefaultRoot 並且設置了 ~ 以外的任何內容,則使用者將被囚禁在以 DefaultRoot 為根的樹中。

如果 DefaultRoot 是 ~ 那麼使用者將被囚禁在以它的主目錄為根的樹中。

除瞭如上所述設置 DefaultRoot ~ 之外,您的 SQL 配置是什麼樣的 - 您實際上是從數據庫中提取它嗎?

DefaultRoot ~

<IfModule mod_dso.c>
 LoadModule mod_sql.c
 LoadModule mod_sql_mysql.c
</IfModule>

SQLLogFile          /var/log/proftpd/mod_sql.log
PersistentPasswd    off
AuthPAM             off
AuthUserFile        /some/path/to/dummy/passwd.ftp
AuthGroupFile       /some/path/to/dummy/group.ftp
AuthOrder           mod_sql.c mod_auth_file.c

SQLConnectInfo      proftpd@localhost:3306 userdatabase password
SQLAuthTypes        Backend Crypt Plaintext OpenSSL
SQLUserInfo         user user_id password NULL NULL ftp_homedir NULL
SQLAuthenticate     users
SQLDefaultUID       14
SQLDefaultGID       50
SQLMinUserUID       13
SQLMinUserGID       49

這是一個或多或少簡潔的例​​子,從數據庫中進行 100% 身份驗證並將它們監禁到數據庫中列出的 homedir。如果您還想在他們登錄時動態創建他們的主目錄(如果您將它們添加到數據庫中並且不想登錄到伺服器來執行此操作很有用),您可以添加:

CreateHome on dirmode 0755

…到配置。上面列出的另外兩個虛擬文件與您在 Red Hat/Centos 伺服器上的 ProFTPd 安裝相匹配:

密碼文件

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

組.ftp

ftp:x:50:
nobody:x:99:

這一切都使您的虛擬使用者在硬碟上的 UID/GID 為 14:50,無論他們的登錄使用者名如何。

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