Мне нужно настроить учетную запись stfp в Ubuntu 18.04, которая соответствует следующему требованию:
Я провел небольшое исследование и обнаружил, что мне нужен Chroot.
Итак, я попробовал это:
adduser --home /var/www/mysite/uploadfolder --no-create-home myusers
usermod -aG www-data myusers
chmod 2770 /var/www/mysite/uploadfolder/
chmod -R g+w /var/www/mysite/uploadfolder/
setfacl -m g:www-data:rwx /var/www/mysite/uploadfolder/
Затем я добавил это в sshd_config:
Match User mvpdocs
ChrootDirectory /var/www/mysite/uploadfolder/
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Но это не работает. Я провел небольшое исследование, и OpenSSH не допускает этого, потому что папка Chroot должна принадлежать пользователю root и не быть доступной для записи для группы. Если я переключу путь к корневой папке в каталоге / home, он будет работать нормально, но мне нужно, чтобы пользователь загрузил в подкаталог.
Как мне обойти эту проблему? Могу ли я создать символическую ссылку на каталог и объявить этот каталог как часть Chroot? Я видел, что это возможно, но без примеров.
Какой для меня самый простой способ добиться простой загрузки учетной записи sftp в подкаталог веб-сайта?
РЕДАКТИРОВАТЬ:
я использовал mount --bind /var/www/mysite/uploadfolder/ /home/user/docs/
и это сработало, но все загруженные файлы принадлежат пользователю и имеют группу пользователей.
Как я могу сделать их групповыми www-данными, чтобы ими можно было управлять с помощью веб-сервера и php?