Установить начальный удаленный рабочий каталог в 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