Apache2 的 SFTP Chroot

Apache2 的 SFTP Chroot

我正在尝试设置 SFTP(OpenSSH 6.1 internal-sftp),以便一组用户(sftpusers)可以访问我的服务器,专门从事我的网站的开发:

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

我已创建由 root 拥有的 chroot (/srv/sftp/shared)。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 访问所有这些文件。我的问题是,当我尝试从 Web 浏览器访问我的网站时,我收到“权限被拒绝”错误,我猜想这是因为这些文件夹位于 chroot 中。我如何允许 Apache 访问此 chroot?

答案1

http://wiki.apache.org/httpd/13PermissionDenied,尤其是那句大胆的话搜索包含这些文件的目录,以及所有父目录,直至文件系统的根目录。Apache 需要能够读取/执行的父目录DocumentRoot。尝试确保对所有文件夹others都有权限:+rx

chmod -R o+rX /srv

相关内容