Chroot на подкаталоге домашнего сайта (SFTP)

Chroot на подкаталоге домашнего сайта (SFTP)

На сервере Debian Apache2 я пытаюсь предоставить доступ к подкаталогу дерева веб-сайтов (домашний каталог веб-сайта:/home/website/public_html/, доступ требуется только для определенного пользователя:/home/website/public_html/boutique/modules/sftpwkmodules

Итак, основной пользователь веб-сайта имеет доступ ко всему дереву (userweb).
Но мне нужен доступ для пользователяsfkmodulesв подкаталог внутри дерева и это не работает.
Я создал пользователяsfkmodules, и группаsftpwkmodules.
Я настроил эти линии вsshd_configфайл:

Match group sftpwkmodules
    ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
     ForceCommand internal-sftp
     AllowTCPForwarding no
     X11Forwarding no

Но когда я подключаюсь кsftpс этим пользователем это не разрешено. В журнале, похоже, есть плохое владение на fatal:Неправильное владение или режимы для компонента каталога chroot "/home/website/public_html/".
Но я не могу изменить владельца всего дерева, чтобы просто дать этому пользователю доступ к подкаталогу. Есть ли способ заставить это работать?

решение1

Перед изменением разрешений обязательно учтите, что ваш веб-сервер должен иметь как минимум разрешения на чтение файлов и каталогов. Кроме того, любые файлы/каталоги, созданные пользователем sfkmodules, будут принадлежать этому пользователю и, в зависимости от вашего umask, могут быть недоступны для чтения веб-сервером.

Решение, которое можно рассмотреть, это chroot пользователей в их собственных каталогах за пределами webroot и придумать какой-то способ watchdog, чтобы обнаружить, когда файлы удаляются, и переместить эти файлы в webroot. Таким образом, вы можете контролировать владение и разрешения.

PERL и cron — ваши помощники в этом деле.

решение2

Создайте группу, добавьте нужного пользователя в группу вместе с любыми другими пользователями, которым вы хотите предоставить доступ, и назначьте необходимые разрешения. Не используйте chroot в этот раз.

Команды ниже предназначены для CentOS, но вы поняли идею.

sudo groupadd groupname  
sudo usermod -a -G groupname admin  
sudo usermod -a -G groupname user1  
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers  

Связанный контент