Установить начальный удаленный рабочий каталог в SFTP

Я использую Amazon Linux AMI (производная от Red Hat) и создаю новый SFTP-сервер с использованием OpenSSH. Я хотел бы, чтобы пользователь SFTP был ограничен каталогом и мог писать в начальный каталог, который отображается их клиентом SFTP.

Я использую ChrootDirectory для изменения пользователя /home/customers/srgcompany, Это означает, что этот каталог должен принадлежать пользователю root и доступен для записи только пользователю root. Запись passwd пользователя выглядит так fflintstone:x:508:515:Fred Flintstone:/home/fflintstone:/sbin/nologin, Я поместил открытый ключ пользователя в /home/fflintstone/.ssh/authorized_keys, Я создал папку, которую группа пользователя (srgcompany) имеет права на чтение / запись / выполнение /sgid на /home/customers/srgcompany/fileshere, Я настроил OpenTPH SFTP с Subsystem sftp internal-sftp -u 0007 -l INFO,

Поэтому сейчас, когда пользователь использует SFTP-клиент для подключения, каталог, который отображается (и возвращается командой pwd), не может быть записан в. Пользователь может перейти в папку с файлами здесь и написать туда. Есть ли способ сделать эту папку filehere начальной удаленной рабочей папкой, как только пользовательский SFTP входит в нее, как в примере ниже? Или я могу сделать папку chrooted доступной для записи?

Что я хочу:

$ sftp sftpserver.sssprockets.com
Connected to sftpserver.sssprockets.com.
sftp> pwd
Remote working directory: /fileshere

Буду признателен за любую оказанную помощь.

1 ответ

Решение

Когда не используется chroot или internal-sftp, пакет OpenSSH использует программу с именем sftp-server обрабатывать входящие сеансы SFTP. В документации по sftp-server перечислены параметры командной строки для начального каталога:

-d start_directory
указывает альтернативный начальный каталог для пользователей. Путь может содержать следующие токены, которые раскрываются во время выполнения: %% заменяется литералом '%', %d заменяется домашним каталогом аутентифицируемого пользователя, а%u заменяется именем пользователя этого пользователя. По умолчанию используется домашний каталог пользователя. Эта опция полезна в сочетании с опцией sshd_config(5) ChrootDirectory.

Эта документация также относится к internal-sftp подсистема, так что вы также можете использовать эту опцию с этим. Обратите внимание, что вы должны указать начальный каталог относительно chroot, а не фактический корень системы:

Subsystem sftp internal-sftp -u 0007 -l INFO -d /fileshere
Другие вопросы по тегам