Unix
配置具有相同密碼的虛擬使用者名範圍
如果以下 FTP 配置是可能的,如果有人可以建議我,我將不勝感激。我需要遵循這種模式的只讀使用者範圍:
(_[0-9]{15})
例如,_012345678901234 將使用相同的密碼而不創建所有可能的組合。案例如下 - 我們配置設備,他們使用 FTP 下載新版本的韌體。在日誌中,我可以看到用於下載文件的使用者名和密碼。主要目標是在日誌中包含設備序列號。
我沒有找到為使用者名指定萬用字元的方法。目前我們只有匿名訪問,但這顯然不夠好。
在 ProFTPD 中,沒有直接的方法為使用者名指定萬用字元。但是,您可以
mod_sql
用來驗證您的使用者並自定義用於獲取使用者資訊的查詢。取自 ProFTPD文件的自定義查詢範例:
SQLAuthenticate users groups usersetfast SQLUserInfo custom:/get-user-by-name/get-user-by-id/get-user-names/get-all-users SQLNamedQuery get-user-by-name SELECT "userid, passwd, uid, gid, homedir, shell FROM users WHERE userid = '%U'" SQLNamedQuery get-user-by-id SELECT "userid, passwd, uid, gid, homedir, shell FROM users WHERE uid = %{0}" SQLNamedQuery get-user-names SELECT "userid FROM users" SQLNamedQuery get-all-users SELECT "userid, passwd, uid, gid, homedir, shell FROM users"
在您的情況下
get-user-by-name
,查詢可能類似於:SQLNamedQuery get-user-by-name SELECT "'%U', passwd, uid, gid, homedir, shell FROM users WHERE userid = SUBSTRING_INDEX('%U', '_', 1) AND SUBSTRING_INDEX('%U', '_', -1) RLIKE '_[0-9]{15}'"
請注意,這不是經過測試的解決方案。只是關於如何實現這一點的一種可能方式的想法。