Ссылаясь на приведенную ниже структуру каталогов, мы имеем следующие условия, которые должны быть выполнены. Член штат сотрудников 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>