У Вас могут быть виртуальные пользователи, использующие сервер SFTP?

Сохраните имена пользователей, как было предложено Фрэнком, но когда вы сохраняете имена пользователей, используйте функцию runTransaction в Firebase, чтобы убедиться, что имя пользователя не занято. Эта функция гарантируется Firebase как атомная операция, поэтому вы можете быть уверены в отсутствии столкновения

firebaseRef.child("usernames").child(username).runTransaction(new Transaction.Handler() {
    @Override
    public Transaction.Result doTransaction(MutableData mutableData) {
        if (mutableData.getValue() == null) {
            mutableData.setValue(authData.getUid());
            return Transaction.success(mutableData);
        }

        return Transaction.abort();
    }

    @Override
    public void onComplete(FirebaseError firebaseError, boolean commited, DataSnapshot dataSnapshot) {
        if (commited) {
            // username saved
        } else {
            // username exists
        }
    }
});
6
задан Chris Hanson 9 September 2008 в 07:31
поделиться

1 ответ

Обычный универсальный Unix отвечает на это, 'PAM'. Если Вы хотите, чтобы простой OpenSSH SSHD обработал Ваш SFTP, Вам нужно что-то включенное к стеку PAM SSHD (/etc/pam.d/sshd), который делает то, в чем Вы нуждаетесь, и не учитывает то, в чем Вы не нуждаетесь. Это могло бы быть сервером каталогов общего назначения (вероятно, LDAP), который отображает всех Ваших виртуальных пользователей на один корневой каталог и дает им ограниченный или scponly вид оболочки.

Если Вы захотите посмотреть на FTP-серверы, которые могут также сделать FTP-ssl (который не является тем же как SFTP), то хорошие FTP-серверы как Чистый-ftpd или vsftp сделают это. Серверы FTP-ssl сделали, чтобы более простой виртуальный пользователь поддерживал.

http://www.bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.php

4
ответ дан 17 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: