![SFTP Chroot запись в chrooted /](https://rvso.com/image/760619/SFTP%20Chroot%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C%20%D0%B2%20chrooted%20%2F.png)
Привет,
Я хотел бы писать от имени пользователя chroot в его /, но не могу.
Пример: у меня есть /home/sftponly/
ChrootDirectory
Внутри должен быть другой каталог с разрешениями для этого пользователя, иначе я не смогу подключиться.
Я хочу, чтобы он был доступен для записи, пока подключающийся пользователь не видит никаких подкаталогов. Есть какие-нибудь советы о том, что я делаю неправильно?
Мой sshd_config
Match User sftponly
ChrootDirectory /home/sftponly
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
решение1
Если я правильно понимаю, вы хотите, чтобы ваш пользователь мог писать в свой домашний каталог, находясь в chroot-окружении.
При подключении через sftp с включенным chroot происходит следующее:
- пользователь помещается в основной каталог "chroot" (здесь,
/home/sftponly
)- Основной chroot-окружение должно принадлежать пользователю root и быть доступным только для чтения пользователям.
- затем пользователь получает chrootсновав свой домашний каталог, как описано в разделе «
/etc/passwd
Начало работы с основным chroot».ЭтотДомашний каталог может быть доступен для записи пользователю.
Итак, если в /etc/passwd у вас есть такая строка:
sftponly:x:1002:1002:,,,:/home/sftponly:/bin/bash
sshd попытается перевести вашего пользователя в /home/sftponly/home/sftponly
.
Так что если выабсолютно необходимоЧтобы выполнить chroot по этому точному пути, /home/sftponly
вам необходимо установить основной chroot sshd_config
, например, так /home
:
ChrootDirectory /home
Затем установите домашний каталогsftponlyв :/etc/passwd
/sftponly
sftponly:x:1002:1002::/sftponly:/bin/bash
Тогда /home/sftponly
пользователь sftponly сможет записывать данные, без проблем.