Переместить пользователя Sftp в подкаталог его тюрьмы

У меня вопрос по поводу джейла, объяснил позже:

  • Пользователь должен быть заключен в тюрьму: foo
  • Каталог тюрем: /mnt/foo-jail
  • Домашний каталог foo: /mnt/foo-jail/foo-home

Все отлично. Jail работает, и пользователь подключается правильно.

  • Проблема в том, что "foo" не имеет разрешения на запись в своем каталоге Jail, но у него есть разрешение на запись в его домашнем каталоге. Когда он подключается к моему серверу, он перенаправляется в /mnt/foo-jail (его Jail), а не в своем доме (/mnt/foo-jail/foo-home), где он может писать;

Как я могу решить эту проблему? Он не может заставить CHDIR перемещаться между папками, но он должен быть перенаправлен на свой собственный домашний каталог.

Большое спасибо за вашу помощь!!!

Изменить: Решено

Я напишу интересную часть конфигурационного файла ssh sshd_config, надеясь, что он кому-нибудь пригодится.

Match user foo ChrootDirectory /mnt/foo-jail/ ForceCommand internal-sftp AllowTCPForwarding no AuthorizedKeysFile /mnt/foo-jail/%h/.ssh/authorized_keys X11Forwarding no

В файле / etc / passwd foo выглядит так:

foo:x:1001:1001:Foo User,,,:/foo-home:/bin/bash

Обратите внимание на дом, который является / foo-home, а не / foo-home /, иначе ssh не сможет перехватить правильный путь ключа.

2 ответа

ChrootDirectory / upload /% u

ForceCommand internal-sftp -d data

Это поместит sftp в каталог /upload/UserXX/data. Каталог данных принадлежит и доступен для чтения / записи UserXX

Попробуй добавить

ChrootDirectory %h

в /etc/ssh/sshd_config в Match Group раздел. %h заменяется домашним каталогом подключающегося пользователя.

Другие вопросы по тегам