【问题标题】:How to allow writing to files via Apache and WebDAV如何允许通过 Apache 和 WebDAV 写入文件
【发布时间】:2023-04-05 12:49:01
【问题描述】:

我无法理解如何在 WebDAV 设置中编辑文件。经过大量在线教程验证,我已经正确设置了身份验证,但有一些文件,如 .htaccess,我无法编辑。

VirtualHost设置的内容是

<VirtualHost *:80>

        ServerAdmin xxx
        ServerName xxx

        DocumentRoot /data/www/vhosts/xxx
        <Directory /data/www/vhosts/xxx>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        <Location />
                DAV On
                AuthType Basic
                AuthName "WebDAV Access"
                AuthUserFile /data/www/.htpasswd-webdav
                Require valid-user
        </Location>

</VirtualHost>

我也在文件中生成了正确的用户名,我可以成功登录并查看所有文件。就像我说的,问题在于某些文件不可读和不可写,主要的罪魁祸首是.htaccess.gitignore

我已将所有文件的权限设置为664,将所有文件夹的权限设置为775,以及user:groupxxx:www-data。原因是这使得 PHP 可以正常读取/写入文件,而我们的远程登录用户 xxx 也可以在没有权限问题的情况下执行相同的操作。

我需要做些什么来允许对这些隐藏的点文件进行读写吗?我完全被难住了,因为我读过的大多数教程都告诉我,如果我不将点文件的权限设置为root:root,那么它们将是可写的。我正在使用 Mac 连接到在 Ubuntu 上运行的 WebDAV 服务,如果这有什么不同的话

为了清楚起见,这个问题中的所有xxx 都是为了隐藏信息。

【问题讨论】:

    标签: apache permissions file-permissions webdav


    【解决方案1】:

    看来我可以允许使用以下访问特定文件

    <Files .htaccess>
     order allow,deny
     deny from all
    </Files>
    

    我忘记了 .htaccess 文件默认通过 HTTP 被阻止。

    编辑:

    使用 Digest 安全身份验证使所有文件可在 webdav 环境中写入的最终工作设置是:

    <VirtualHost *:80>
    
            ServerAdmin xxx
            ServerName www.domain.name
    
            DocumentRoot xxx
            <Directory xxx>
                    Options Indexes MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    
            <FilesMatch "\.(htaccess|php)$">
            Order allow,deny
            allow from all
            ForceType text/plain
        </FilesMatch>
    
            <Location />
                    DAV On
    
                    AuthType Digest
                    AuthName "Webdav Access"
            AuthDigestDomain / http://www.domain.name/
    
            AuthDigestProvider file
                    AuthUserFile /data/www/digest.users
                    Require valid-user
    
            php_value engine off
            </Location>
    
    </VirtualHost>
    

    我希望这对其他人有所帮助。在网上找到所有这些信息需要几天时间。

    【讨论】:

      【解决方案2】:

      还要检查 /data/www/ 本身的权限。它应该对 apache 用户是可写的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 2016-03-07
        • 2014-05-23
        • 2017-05-07
        • 2017-06-04
        • 2022-12-10
        • 1970-01-01
        相关资源
        最近更新 更多