Ubuntu
ProFTPD 虛擬使用者目錄
好的,我正在嘗試通過 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,無論他們的登錄使用者名如何。