Назад | Перейти на главную страницу

SFTP Chroot для Apache2

Я пытаюсь настроить SFTP (OpenSSH 6.1 internal-sftp), чтобы группа пользователей (sftpusers) могла получить доступ к моему серверу специально для работы над разработкой моего веб-сайта:

 Match Group sftpusers
        Chrootdirectory /srv/sftp/shared
        AllowTCPForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Я создал chroot (/ srv / sftp / shared), принадлежащий пользователю root. Виртуальные каталоги Apache указывают на папки в / srv / sftp / shared / www. Эта папка принадлежит www-data, как и ожидалось:

drwxrwxr-x 5 www-data www-data 4096 Oct 13 20:39 /srv/sftp/shared/www
drwxr-x--- 3 root sftpusers 4096 Oct 13 19:41 /srv/sftp/shared

Ошибка Apache:

[Sun Oct 13 22:04:15 2013] [crit] [client 117.62.133.161] (13)Permission denied: /srv/sftp/shared/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable Verified virtual directories are set to shared/www, not shared

Я могу получить доступ ко всем этим файлам через SFTP. Моя проблема в том, что при попытке доступа к моим сайтам из веб-браузера теперь я получаю ошибку «Permission Denied», которая, как я полагаю, возникает из-за наличия этих папок в chroot. Как я могу разрешить Apache доступ к этому chroot?

Видеть http://wiki.apache.org/httpd/13PermissionDenied, особенно смелое заявление, в котором говорится поиск в каталоге, содержащем эти файлы, вместе со всеми родительскими каталогами до корня файловой системы. Apache должен иметь возможность читать / выполнять в родительских каталогах DocumentRoot. Попробуйте убедиться, что others иметь +rx разрешения на все папки:

chmod -R o+rX /srv