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

Apache24 Webdav позволяет размещать сообщения в папке, но запрещает перемещение папок

Ссылаясь на приведенную ниже структуру каталогов, мы имеем следующие условия, которые должны быть выполнены. Член штат сотрудников htgroup должен иметь возможность размещать файлы в любом из этих трех каталогов, а также в Root сам. Они также должны иметь возможность перемещать файлы из любого каталога в спам. Однако им не должно быть разрешено никуда перемещать каталог.

Это файловая структура нашего веб-сайта:

-- Root
    |-- Invoice_Scans_Client
    |-- Invoice_Scans_Vendor
    `--Junk

И вот что сделал сегодня один из наших сотрудников:

-- Root
    |-- Invoice_Scans_Client
    `-- Junk
        `-- Invoice_Scans_Vendor

Мне нужно предотвратить такое движение и при этом разрешить файлы в Root или любой из каталогов сканирования, который нужно переместить в Junk. Как выполнить это требование? Как я могу заблокировать эти каталоги от перемещения, разрешив при этом другие файлы?

Это директивы Apache-2.4, относящиеся к доступу к нашему сайту webdav:

  <Directory /usr/local/www/apache24/data/Root>
    AuthType              Basic
    AuthBasicProvider     file
#  AuthUserFile          /usr/local/etc/apache24/access.d/.htpasswd_test
    AuthUserFile          /usr/local/etc/apache24/access.d/.htpasswd
    AuthName              webdav.harte-lyne.ca
    AuthGroupFile         /usr/local/www/apache24/data/htgroup

#   Options               Indexes MultiViews FollowSymLinks
    Options               Indexes MultiViews
    IndexOptions          FancyIndexing
    AddDefaultCharset     UTF-8

    Dav                   On
  # 0 == No Sever Minimum Timeout in seconds on locks - let WebDaV clients decide 
    DAVMinTimeout         120
    DAVDepthInfinity      Off
    LimitXMLRequestBody   96000000

    # There is an impliccit RequireAny within every Directory and Location block
    # This is just to make things clear while testing
    <RequireAny>
      # Deny everyone first
      Require               all denied
      Require               group sysadmin granted

      <RequireAll>
        Require method GET HEAD PROPFIND OPTIONS
        Require valid-user
      </RequireAll>

    </RequireAny>

  </Directory>
 Directory requires absolute filesystem paths
  <Directory /usr/local/www/apache24/data/Root/Invoice_Scans_Client>

    <RequireAny>

      Require       group sysadmin

      <RequireAll>
        Require not method DELETE
        Require     group accounting management payables receivables staff
      </RequireAll>

    </RequireAny>

  </Directory>

# Directory requires absolute filesystem paths
  <Directory /usr/local/www/apache24/data/Root/Invoice_Scans_Vendor>

    <RequireAny>

      Require       group sysadmin

      <RequireAll>
        Require not method DELETE
        Require     group management staff sysadmin
      </RequireAll>

    </RequireAny>

</Directory>

# Directory requires absolute filesystem paths
  <Directory /usr/local/www/apache24/data/Root/Junk>
    Require         group management staff
  </Directory>