Unix

配置具有相同密碼的虛擬使用者名範圍

  • July 23, 2014

如果以下 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}'"

請注意,這不是經過測試的解決方案。只是關於如何實現這一點的一種可能方式的想法。

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