Я пытаюсь защитить модуль mod_userdir в apache ..
В настоящее время структура каталогов для сайтов моих пользователей
/ home / {user} / domains / {domain} / public_html / site
Проблема в том, что некоторые мои пользователи хранят файлы, которые не должен хранятся в каталоге / domains / (частные файлы), но они хранятся, и id скорее обходит его, чем заставляет их перемещать.
В основном я запретил доступ ко всем каталогам в / {domain} /, кроме public_html, ОДНАКО файлы все еще можно просматривать.
Вот мой конфиг usermod.conf.
<IfModule mod_userdir.c>
UserDir /home/*/domains
UserDir disabled root
<Directory /home/*/domains/*/*>
Order allow,deny
Deny from all
</Directory>
<FilesMatch /home/*/domains/*/*>
Order deny,allow
Deny from all
</FilesMatch>
<Directory /home/*/domains/*/public_html>
Order allow,deny
Allow from all
</Directory>
<Directory /home/*/domains>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Вы можете видеть, как я пытался закрыть доступ к файлам в / {domain} / с помощью, но это просто не работает.
Любая помощь будет оценена.
Я не верю, что вы можете указать путь в любой из директив Files. И также не похоже, что вам действительно нужна директива FilesMatch, поскольку вы на самом деле не используете какой-либо сложный шаблон, чтобы требовать регулярных выражений. Я обычно помещаю свои директивы Files в каталог, хотя для упрощения.
Похоже, это сработало для меня с настройкой, подобной вашей. В / var / www / domains есть 1/2 / и 3 / каждый с различными html-файлами. Сейчас нет доступных.
<Directory /var/www/domains/*/>
Options None
AllowOverride None
Order Allow,Deny
Deny from All
<Files *>
Order Allow,Deny
Deny from All
</Files>
</Directory>
Возможно, ваша проблема в директиве FilesMatch; FilesMatch использует регулярное выражение для соответствия директивам, поэтому, чтобы получить то, что вы хотите, вы должны написать:
<FilesMatch "/home/.*/domains/.*/.*">
Order deny,allow
Deny from all
</FilesMatch>