我对vsftpd
本地用户和虚拟用户之间的配置差异感到有些困惑。从 vsftpd 的角度来看,它不知道用户是本地用户还是虚拟用户,不是吗?vsftpd
只需连接到中设置的 PAM 模块pam_service_name
,如果根据 PAM 的凭据正确,则接受登录。
那么,为什么vsftpd
文档会在它们之间产生差异?
例如,我有一个个性化的 PAM 模块,它从不使用系统本地 ( /etc/passwd
) 用户的数据库中获取登录凭据,因此,即使在我的文档local_enable
中设置为,我也无法使用任何系统帐户登录。YES
正是这种困惑让我无法完全理解virtual_user_local_privs
. 在哪些情况下vsftpd
将登录用户视为本地用户或虚拟用户?PAM 是否以vsftpd
某种方式通知它?O有什么我完全误解的吗?
由于遗留原因,此配置选项是否仍然存在?
所有这些混乱都来自于vsftp
没有提供实际的文档,而只是一个参考。
这都是关于权限的。Linux 中的所有文件和目录都有一组标准的访问权限。这些访问权限控制谁可以访问哪些文件,并为系统中的文件和目录提供基本级别的安全性。虚拟用户和本地用户的主要区别在于本地用户拥有自己的主目录虚拟用户默认具有与匿名用户相同的权限。
我正在寻找的差异是从这个分叉的 github repo中的一个
vsftpd
配置示例中提取的:因此,本地用户只是可以根据配置的 PAM 服务登录的任何用户,而虚拟用户是本地 (PAM) 用户,其行为(在登录后)与实际的本地 (
/etc/passwd
) 用户相同。我想您可以guest_username
根据每个用户更改您的以识别“虚拟 ftp 用户组”。当您个性化您的 PAM 服务以创建非系统用户(不存在的用户名和密码的自定义列表
/etc/passwd
)时,vsftpd
由于这些用户实际上并不存在于系统中,因此无法正常工作,因此在上传时无法检查权限或读取目录或文件。因此,您需要一个系统用户代表他们行事。这就是
guest_enable
发挥作用的地方:每个登录的用户都将充当guest_username
,必须作为/etc/passwd
用户存在。