Назад | Перейти на главную страницу

vsftpd: локальные пользователи - это пользователи pam

Я немного смущен разницей относительно 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 имеют стандартный набор прав доступа. Эти разрешения на доступ определяют, кто и к каким файлам имеет доступ, и обеспечивают фундаментальный уровень безопасности для файлов и каталогов в системе. Основное различие между виртуальными и локальными пользователями заключается в том, что локальные пользователи владеют своими домашними каталогами. Виртуальные пользователи по умолчанию имеют такие же права, как и анонимные.