Я немного смущен разницей относительно vsftpd
конфигурация между локальными пользователями и виртуальными пользователями. С точки зрения vsftpd, он не знает, является ли пользователь локальным или виртуальным пользователем, не так ли? vsftpd
просто подключитесь к модулю PAM, установленному в pam_service_name
, и если учетные данные верны в соответствии с PAM, логин будет принят.
Итак, почему vsftpd
документация имеет значение между ними?
Например, у меня есть персонализированный модуль PAM, который принимает учетные данные для входа из базы данных, которая не использует системный локальный (/etc/passwd
) пользователей, и, следовательно, я не могу войти в систему, используя любую системную учетную запись, даже если local_enable
установлен на YES
в моей документации.
Из-за этой путаницы я не до конца понимаю цель virtual_user_local_privs
. При каких обстоятельствах vsftpd
рассматривает зарегистрированного пользователя как локального или виртуального? Уведомляет ли PAM об этом vsftpd
каким-то образом что ли? О, есть ли что-то, что я совершенно не понял?
Возможно, эти параметры конфигурации все еще присутствуют из-за устаревших причин?
Вся эта путаница исходит от vsftp
не предоставлять фактическую документацию, а просто ссылка.
Разница, которую я искал, извлечена из одного из vsftpd
примеры конфигурации в этот разветвленный репозиторий github:
guest_enable = ДА
guest_username = виртуальный
Guest_enable очень важен - он активирует виртуальных пользователей! И guest_username говорит, что все виртуальные пользователи отображаются на реального пользователя "virtual", который мы установили выше.
Таким образом, локальные пользователи - это просто любой пользователь, который может войти в систему в соответствии с настроенной службой PAM, а виртуальные пользователи - это локальные (PAM) пользователи, которые действуют (после входа в систему) как такие же фактические локальные (/etc/passwd
) пользователь. Я думаю, ты можешь изменить свой guest_username
для каждого пользователя для определения «виртуальных групп пользователей ftp».
Когда вы персонализируете свою службу PAM для создания несистемных пользователей (настраиваемый список имен пользователей и паролей, которого нет в /etc/passwd
), vsftpd
не может работать должным образом, поскольку эти пользователи на самом деле не существуют в системе, поэтому разрешения не могут быть проверены при загрузке или чтении каталогов или файлов.
Итак, вам нужен системный пользователь, действующий от их имени. Это где guest_enable
вступает в игру: каждый зарегистрированный пользователь будет действовать как guest_username
, который должен существовать как /etc/passwd
пользователь.
Все дело в разрешениях. Все файлы и каталоги в Linux имеют стандартный набор прав доступа. Эти разрешения на доступ определяют, кто и к каким файлам имеет доступ, и обеспечивают фундаментальный уровень безопасности для файлов и каталогов в системе. Основное различие между виртуальными и локальными пользователями заключается в том, что локальные пользователи владеют своими домашними каталогами. Виртуальные пользователи по умолчанию имеют такие же права, как и анонимные.