5. WebDAV 服务器管理

在本节中,我们将讨论各种管理任务 - 例如,使用 LDAP 进行访问控制,以及在 Apache 上使用 DAV 方法

DAV 的大多数配置更改将必须使用httpd.conf文件。此文件位于/usr/local/apache/conf/httpd.conf

httpd.conf是 Apache 使用的基于文本的配置文件。可以使用任何文本编辑器对其进行编辑 - 我更喜欢使用 vi。在更改此文件之前,请制作备份副本。

在对httpd.confApache 服务器必须使用 /usr/local/apache/bin/apachectl restart 命令重启。但是,在重启之前,您需要测试httpd.conf的有效性,方法是使用 /usr/local/apache/bin/apachectl configtest 命令。

5.1. 限制对 DAV 共享的访问

在前一节中,当我们创建 DAVtest 共享时,我们使用 LDAP 进行身份验证。但是,任何可以使用其 LDAP 用户名/密码进行身份验证的人都将能够访问该文件夹。

使用 httpd.conf 文件中的 require 指令,我们可以限制对特定个人或个人组的访问。

如果我们查看前一节中的 DAVtest 配置
  <Directory /usr/local/apache/htdocs/DAVtest>
  Dav On
  #Options Indexes FollowSymLinks

  AllowOverride None
  order allow,deny
  allow from all
  AuthName "LDAP_userid_password_required"
  AuthType Basic
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require valid-user
  </Limit>
  LDAP_Server ldap.server.com
  LDAP_Port 389
  Base_DN "o=ROOT"

  UID_Attr uid
  </Directory>
我们看到 require 设置为 valid-user。这意味着任何有效的已验证用户都可以访问此文件夹。

5.1.1. 基于个人 UID 限制访问

LDAP UID 可用于限制对 DAV 文件夹的访问。

require valid-user 指令可以更改为 require user 334455 445566

这将限制对 UID 为 334455 和 445566 的个人的访问。任何其他人将无法访问此文件夹。

5.1.2. 基于个人组限制访问。

require 也可以用于限制对个人组的访问。这可以使用 LDAP 组或 LDAP 过滤器来完成。过滤器必须是有效的 LDAP 过滤器语法。

5.2. 限制对 DAV 共享的写入访问

可能需要将 DAV 共享上资源的编辑限制为特定个人,但任何人都可以查看资源。这可以使用 httpd.conf 文件中的 <Limit> 标签轻松完成

  <Directory /usr/local/apache/htdocs/DAVtest>
  Dav On
  #Options Indexes FollowSymLinks

  AllowOverride None
  order allow,deny
  allow from all
  AuthName "LDAP_userid_password_required"
  AuthType Basic
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require valid-user
  </Limit>
  LDAP_Server ldap.server.com
  LDAP_Port 389
  Base_DN "o=ROOT"

  UID_Attr uid
  </Directory>

您可以通过将 <limit> 更改为
  <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require 334455
  </Limit>

基本上,我们将 PUT POST DELETE PROPPATH MKCOL COPY MOVE LOCK 和 UNLOCK 限制为 UID 为 334455 的个人。其他所有人都可以对资源使用 GET 和 PROPFIND 方法,但不能使用任何其他方法。