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

Как я могу настроить ProFTP и SSHD_config для FTP и SFTP в один и тот же каталог в Ubuntu 12.04?

У меня проблемы с chrooted окружением в Ubuntu 12.04.

Задача

Настройте FTP / SFTP-сервер, на котором пользователи, входящие в новую группу sftp, могут использовать sftp и ftp в одном каталоге.

Настройка ProFTP

Настройка ProFTP - это базовая сборка Ubuntu, и она работает должным образом. Пользователь test1 может войти на сервер через ftp на tcp 21 и будет привязан к своему каталогу / home / test1 / ftproot.

в /etc/proftpd/proftpd.conf

# Use this to jail all users in their homes
DefaultRoot                     ~/ftproot

Когда пользователь test1 входит в систему через ftp, он видит только / (это то, что я хочу).

Но когда тот же пользователь входит в систему через sftp и правильно chrootted с помощью sshd_config, поскольку каталог / home / test1 ДОЛЖЕН принадлежать пользователю root, пользователь входит в систему через sftp и видит:

/
/ftproot
/.bashrc

Это означает, что пользователь НЕ попадает в тот же каталог / ftproot. test1 по умолчанию окажется в его домашнем каталоге / home / test1, который фактически принадлежит пользователю root. Следовательно, он не может ничего писать через sftp, пока не изменит каталоги на / ftproot.

Как мне настроить sftp-сервер так, чтобы по умолчанию он находился в том же каталоге?

Вот мои соответствующие настройки sshd_config:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp -f AUTH -1 VERBOSE
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
#AllowTcpForwarding No

ChrootDirectory% h / ftproot не работает.

Теперь, когда proftpd имеет собственную реализацию SFTP через mod_sftp модуль, используя его для ваших нужд SFTP (а не OpenSSH), можно аккуратно решить эту проблему.

Вам нужно изменить папку, в которую пользователь test1 приходит с SSH. Посмотрите ответ на этот вопрос: https://stackoverflow.com/questions/3530433/putty-change-default-ssh-login-directory;
Добавить cd subdir/subdir в ~ / .bashrc или ~ / .bash_profile, или
изменить домашний каталог пользователя.

Чтобы изменить домашний каталог пользователя: usermod -d /path/to/dir/ username