vsftpd:本地使用者是pam使用者
我對
vsftpd
本地使用者和虛擬使用者之間的配置差異感到有些困惑。從 vsftpd 的角度來看,它不知道使用者是本地使用者還是虛擬使用者,不是嗎?vsftpd
只需連接到中設置的 PAM 模組pam_service_name
,如果根據 PAM 的憑據正確,則接受登錄。那麼,為什麼
vsftpd
文件會在它們之間產生差異?例如,我有一個個性化的 PAM 模組,它從不使用系統本地 (
/etc/passwd
) 使用者的數據庫中獲取登錄憑據,因此,即使在我的文件local_enable
中設置為,我也無法使用任何系統帳戶登錄。YES
正是這種困惑讓我無法完全理解
virtual_user_local_privs
. 在哪些情況下vsftpd
將登錄使用者視為本地使用者或虛擬使用者?PAM 是否以vsftpd
某種方式通知它?O有什麼我完全誤解的嗎?由於遺留原因,此配置選項是否仍然存在?
所有這些混亂都來自於
vsftp
沒有提供實際的文件,而只是一個參考。
我正在尋找的差異是從這個分叉的 github repo中的一個
vsftpd
配置範例中提取的:guest_enable=YES
來賓_使用者名=虛擬
guest_enable 非常重要——它會啟動虛擬使用者!guest_username 表示所有虛擬使用者都映射到我們在上面設置的真實使用者“虛擬”。
因此,本地使用者只是可以根據配置的 PAM 服務登錄的任何使用者,而虛擬使用者是本地 (PAM) 使用者,其行為(在登錄後)與實際的本地 (
/etc/passwd
) 使用者相同。我想您可以guest_username
根據每個使用者更改您的以辨識“虛擬 ftp 使用者組”。當您個性化您的 PAM 服務以創建非系統使用者(不存在的使用者名和密碼的自定義列表
/etc/passwd
)時,vsftpd
由於這些使用者實際上並不存在於系統中,因此無法正常工作,因此在上傳時無法檢查權限或讀取目錄或文件。因此,您需要一個系統使用者代表他們行事。這就是
guest_enable
發揮作用的地方:每個登錄的使用者都將充當guest_username
,必須作為/etc/passwd
使用者存在。
這都是關於權限的。Linux 中的所有文件和目錄都有一組標準的訪問權限。這些訪問權限控制誰可以訪問哪些文件,並為系統中的文件和目錄提供基本級別的安全性。虛擬使用者和本地使用者的主要區別在於本地使用者擁有自己的主目錄虛擬使用者預設具有與匿名使用者相同的權限。