без использования демона SSH, в «пространстве пользователя», так сказать
Здесь есть неправильное представление. Демон SSH - это «пространство пользователей», как и любой другой сервер сетевых протоколов - он не обязательно является частью ОС.
Более важно: то, как проверяются учетные данные для входа, не имеет ничего общего с присутствием демона SSH, но зависит от того, каким демоном SSH вы пользуетесь, и как он написан (запрограммирован) для работы. Нет ничего, что заставляло бы демона SSH использовать системные учетные записи; это выбор программиста (хотя по общему признанию единственный выбор, который имеет смысл для ежедневного использования).
(Примечание: это не всегда так со всеми сетевыми программами. Например, встроенный SMB-сервер Windows на самом деле является частью ОС и, как правило, не может быть заменен. Но, к счастью, ваш вопрос не о SMB на Windows; речь идет о SSH в Linux.)
Продолжая:
Можно ли запустить SFTP-сервер без использования демона SSH
И да и нет.
SFTP определен для использования через транспорт SSH; большинство клиентов не будут поддерживать никакой другой транспорт. Важным следствием является то, что SFTP не имеет собственной защиты (например, аутентификации или шифрования) - эти уровни безопасности устанавливаются во время рукопожатия SSH.
Однако SFTP не требует конкретно sshd OpenSSH, а также не требует полнофункционального общесистемного демона SSH в целом - полный стек может быть реализован другим программным обеспечением, часто как в одной программе.
Мне не нравится, как системные учетные записи пользователей привязаны к учетным данным
Для общих демонов SSH использование системных учетных записей, как правило, является единственным вариантом, который имеет смысл, поскольку они позволяют клиенту иметь интерактивный доступ к оболочке, с помощью которого он может запускать всевозможные внешние программы и системные команды. Одна только служба SSH не может обеспечить разделение между программами, запускаемыми разными пользователями, если она не получит помощь от ОС - и по совпадению именно для этого созданы системные учетные записи. Вот почему OpenSSH использует системные учетные записи и ничего больше.
К счастью, вышесказанное не является проблемой для демонов FTP и выделенных демонов SSH «только для SFTP», поскольку все операции FTP / SFTP происходят внутри самого демона, и для изоляции пользователя не требуется ничего, кроме тщательной проверки путей к файлам.
Итак, наконец-то добрались до вашего запроса:
Я бы предпочел иметь отдельный конфигурационный файл для указания разрешенных комбинаций пользователь: пароль и запуск демона под одним пользователем
Для этого есть программное обеспечение. Поиск FTP-серверов, которые поддерживают аутентификацию «виртуальных пользователей» через какую-либо форму базы данных. Некоторые из них также имеют возможность SFTP, например, ProFTPd . Большинство, однако, делают только FTP / FTPS.