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

Разрешения файла / каталога для пользователя SFTP

После частого использования SSH на моем 1,5-недельном Debian 6 VPS я хотел начать загрузку файлов через SFTP. Я уже пробовал это раньше, но с учетной записью root, что больше невозможно с SSH из-за изменений безопасности.

Итак, я сделал отдельного пользователя, позвольте ему позвонить sftpuser на данный момент, кто принадлежит к группе sftp. Он получил специальную запись в sshd_config:

Match Group sftp
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    PasswordAuthentication yes

Итак, ему повезло, и ему не нужен ключевой файл для подключения, но он ограничен / var / www. Что ж, это работает, я могу отлично войти в систему и просмотреть все файлы там. Но поскольку они принадлежат пользователю root, он не может ничего загружать, что делает его совершенно бесполезным.

В своем путешествии по дебрям разрешений для файлов я прочитал много комбинаций восьмеричных чисел и странных обходных путей, но ничего подходящего. Если я правильно понимаю, chmod можно использовать только для того, чтобы сделать каталог доступным для записи определенному пользователю (корень в данном случае), группа (угадайте, что, корень в данном случае \ o /) или другие. «Лучшая» идея, которую мне пришлось решить, не нарушая работы PHP-FPM и nginx, заключалась в том, чтобы добавить sftpuser к корень группа. Хотя я думал, что это будет плохой идеей, это не должно вызвать большого разрушения, так как sftpuser chrooted и не может открыть оболочку. Но это все равно не сработало, я не мог писать ни в какие файлы там, даже с sftpuser в корень группа.

Тем не менее, мне действительно нужна помощь в поиске того, что нужно использовать для моей цели. Я не жду стены текста, как я написал здесь, просто небольшой намек, который укажет мне правильное направление.

Я создал домашний том (назовем его / sftphome) для sftpuser, который должен принадлежать пользователю root и иметь следующие права и права собственности:

/ sftphome

drwxr-xr-x    root root

Тогда домашний каталог sftp для sftpuser также должен принадлежать root:

/ sftphome / sftpuser

drwxr-xr-x    root root

Затем создайте каталог, в который sftpuser может загружать и скачивать:

/ sftphome / sftpuser / загрузить

drwx------  sftpuser sftpuser

Конечно убедитесь / sftphome правильно настроен:

ChrootDirectory /sftphome

Конечным результатом этого является то, что когда sftpuser входит на сервер sftp, этот пользователь направляется на / sftphome / sftpuser а затем должен выполнить загрузку с компакт-диска, чтобы иметь возможность загружать и скачивать файлы.