ProFTPD 虛擬使用者目錄

ProFTPD 虛擬使用者目錄

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

目錄儲存在其中/home/ftp,這就是DefaultRoot設定的內容。我希望每個單獨的用戶都擁有並被監禁在自己的目錄中。homedirSQL中的設定似乎沒有任何效果。使用任何使用者登入 FTP 後,都會登入DefaultRoot沒有目錄限製或重定向的情況。

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

答案1

嘗試註解掉 DefaultRoot 我認為它可能會覆蓋從資料庫後端讀取的值。

編輯:

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

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

答案2

除瞭如上所述設定 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% 驗證並將它們監禁到資料庫中列出的主目錄。如果您還想在他們登入時動態建立他們的主目錄(如果您將它們新增至資料庫並且不想登入伺服器來執行此操作,則很有用),您可以新增:

CreateHome on dirmode 0755

...配置。上面列出的另外兩個虛擬檔案與您在 Red Hat/Centos 伺服器上安裝的 ProFTPd 相符:

密碼檔ftp

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,無論其登入使用者名稱為何。

相關內容