2

Я застрял. Я работал весь день, пытаясь выяснить, что я делаю неправильно, и я ударил стену за стеной.

Что я пытаюсь сделать: настроить FTP таким образом, чтобы определенные пользователи имели доступ только к своим каталогам, а пользователи более высокого уровня - ко всем каталогам.

То, что я до сих пор гуглил: я начал с этого, но это не помогло . Затем я использовал это, но как только я создал одного пользователя, он не позволил бы мне создать другого. Наконец, я решил последовать этому примеру, но он не позволил бы мне даже создать одного пользователя.

Я использую Ubuntu 10. Я могу войти в ftp как пользователь root, и он переносит меня в домашний каталог. Если я пытаюсь войти в систему, используя пользователя, которого я создал в учебнике, он говорит:

Status: Connection established, waiting for welcome message...
Response:   220 (vsFTPd 2.2.2)
Command:    USER mathew
Response:   331 Please specify the password.
Command:    PASS ****
Response:   530 Login incorrect.
Error:  Critical error
Error:  Could not connect to server

РЕДАКТИРОВАТЬ: У меня все еще есть проблемы с пониманием CHROOT с FTP. Каждый урок, который я читаю, выглядит совершенно по-разному и заставляет меня делать разные вещи. Каждый урок, который я читаю на VSFTP, заставляет меня делать разные вещи. Я думал, что с использованием Linux будет проще конфигурировать и настраивать, но до сих пор я борюсь с чем-то, что должно быть простым. Проще настроить весь стек LAMP, чем FTP. Вздох Извините за напыщенную речь.

2 ответа2

0

Итак, чтобы ответить на мой собственный вопрос ... Я использовал более простое приложение FTP. http://www.flynsarmy.com/2010/11/lazy-mans-guide-to-chroot-jailed-ftp/

Быстро, грязно. Это не SFTP или FTPS или FTP через SSH-туннель, но это то, о чем я просил, и это работает очень хорошо.

0

Если у вас нет очень конкретной причины, не используйте ftp . Это небезопасно и ограничено.

Для дополнительной информации.

Если вы все еще хотите продолжить, информация, которую вы ищете, называется «chroot» и очень возможна, но вы, вероятно, не найдете ее в документации по ftp. Начните с этого в Google: chroot an FTP user

Если вам нужно переключиться на ssh где вы можете использовать sftp , вы можете настроить среду chroot примерно за 5 минут, если вы знаете, что должно произойти. Читай дальше, чтобы узнать больше!

Приведенная ниже информация взята с http://www.debian-administration.org/articles/590

подсистема sftp internal-sftp

Вам необходимо настроить OpenSSH для использования его внутренней подсистемы SFTP. Это должно быть в /etc/ssh/sshd_config

Subsystem sftp internal-sftp

sshd_config

Среда Chroot должна быть указана в сегменте Match.

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Обратите внимание, что был указан ChrootDirectory а также ForceCommand .

Примечание о разрешениях

Домашний каталог пользователя ДОЛЖЕН БЫТЬ СОЗДАН КОРЕННЫМ! Это не обязательно. Кроме того, он НЕ ДОЛЖЕН быть доступным для записи для любого пользователя, ЗА ИСКЛЮЧЕНИЕМ root. Домашний каталог и ВСЕ родительские каталоги имеют те же ограничения.

drwxr-xr-x 21 root   root   4096 Jan  1 12:51 /
drwxr-xr-x 16 root   root   4096 Jan 15 14:26 /home
drwxr-xr-x  3 root   root   4096 Jan 15 14:27 /home/chroot
drwxrwxrwx  2 chroot chroot 4096 Jan 15 14:27 /home/chroot/upload

Обратите внимание, что разрешения для домашнего каталога пользователя (/home/chroot) НЕ доступны для записи даже владельцу (учетная запись с именем chroot). Я создал каталог загрузки, который позволяет модификацию в качестве примера. В этой настройке пользователь chroot НЕ имеет права на запись в свой домашний каталог. Это сделано намеренно и требуется для chroot sftp. Опять же, все родительские каталоги должны иметь одинаковые разрешения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .