У меня проблемы с 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 не работает.

answer

Теперь, когда у 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