Как настроить аутентификацию для личного userdir в Apache?

Я установил аутентификацию в своем личном public_html в моем home каталоге, но это не имеет никакого эффекта. Т.е., я должен получить всплывающее окно с просьбой о моих учетных данных, но этого не происходит. Аутентификация отлично работала с каталогом в корневом каталоге сервера, и она работала нормально. Теперь я реструктурирую сервер.

Вот еще несколько деталей. Есть несколько побочных проблем и вопросов, связанных с конфигурационным файлом, который я выделяю полужирным шрифтом . Если ты тоже поможешь мне с ними, это будет здорово.

  • У меня есть основной каталог HTTP в /var/www/html и тот же для HTTPS.
  • Там только один файл, index.html со ссылкой на мой личный URL ~tomas . Он работает нормально. Я использую userdir mod для отображения ~tomas .
  • У меня также есть личный каталог cgi-bin , и CGI работают нормально, но я хотел бы, чтобы URL ~tomas/cgi-bin показывал список каталогов , который по какой-то причине не работает, и я получаю 403 Forbidden.
  • Я хочу, чтобы основной каталог был доступен как в HTTPS, так и в HTTP и без авторизации. Но как только клиент запрашивает одну из личных каталогов public_html через ~user , доступ должен быть аутентифицирован, а аутентификация должна проходить через HTTPS . Поэтому HTTP необходимо переключить на HTTPS. Я уже настроил и протестировал HTTPS-объекты, но в этом контексте еще не настроен. Поэтому, если вы можете дать мне совет по этому вопросу, это будет здорово. Особенно, если вы знаете стандартный способ интеграции этих двух (принудительная проверка подлинности HTTPS +). Если это имеет значение, у меня нет полного доменного имени.

Однако главный вопрос заключается в том, как заставить аутентификацию работать для ~user , даже по HTTP.

Я поместил все конфиги в userdir.conf и я предполагаю, что проблема заключается в использовании подстановочного знака в /home/*/public_html . Однако я новичок в Apache. Вот userdir.conf .

 <IfModule mod_userdir.c> UserDir "public_html" UserDir disabled UserDir enabled tomas <Directory "/home/*/public_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Require all granted </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> AuthType Basic AuthName "Personal HTML" AuthUserFile "/usr/share/apache2/passwd/passwords" Require valid-user SSLOptions +StdEnvVars </Directory> <Directory "/home/*/public_html/cgi-bin"> Options ExecCGI Indexes SetHandler cgi-script </Directory> </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

Если у вас есть какие-либо комментарии к этому файлу конфигурации или о моем подходе к Apache в целом, сделайте комментарий.

One Solution collect form web for “Как настроить аутентификацию для личного userdir в Apache?”

Ключ – это директива Limit . Ключ присутствует в разделе <Limit> Директива core страницы Apache doc mod mod.

При использовании директив <Limit> или <LimitExcept> директивой Require , обратите внимание, что первый запрос на успех разрешает запрос независимо от наличия других директив Require .

Как оказалось, первое Require которое соответствует рассматриваемому делу, решает, как оно обрабатывается. С конфигурацией из моего вопроса, то есть:

  <Limit GET POST OPTIONS> Require all granted </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> AuthType Basic AuthName "Personal HTML" AuthUserFile "/usr/share/apache2/passwd/passwords" Require valid-user 

с простым запросом GET, это Require all granted во второй строке листинга выше, которое делает вещь. AuthType Basic и другие строки под ним являются мертвым кодом. Правильный путь:

  <Limit GET POST OPTIONS> AuthType Basic AuthName "Personal HTML" AuthUserFile "/usr/share/apache2/passwd/passwords" Require valid-user </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> 

В стороне, вот случай, когда директива Limit игнорируется.

  Require all granted <Limit GET POST OPTIONS> AuthType Basic AuthName "Personal HTML" AuthUserFile "/usr/share/apache2/passwd/passwords" Require valid-user </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> 

Первая строка успешно завершена и авторизует запрос.

  • процесс не использует новую конфигурацию открытого файла, которую я установил?
  • Проблема при установке "ia32-libs"
  • Поиск работоспособности компьютера с первого дня до настоящего времени
  • Загрузите приложение с нагрузкой модуля и укажите другое имя по умолчанию
  • Клавиша 'd' в VNC Viewer сводит к минимуму все окна
  • ldap_sasl_bind (SIMPLE): не удается связаться с ошибкой сервера LDAP (-1) при запуске openldap в контейнере докера под сервером ubuntu 16.04
  • Не удалось обновить Cinnamon с Linux Mint 13
  • Как отключить оптическую мышь usb от терминала Ubuntu 14.04?
  • Как скомпрометировать скрипт prerm и preinst с сообщением об ошибке в пакете Debian
  • Grub2 - загрузочный Linux с бесконечной символической ссылкой
  • Как установить Fedora & Ubuntu с зашифрованными VG на одном диске?
  • Interesting Posts

    Скрипт внутри оболочки bash, который находится внутри другой оболочки bash

    sed string для точного соответствия, содержащего /

    Использование bash, чтобы убедиться, что одна программа успела начать, прежде чем запускать другую

    История поиска bash для уже введенной команды

    Создание родительских каталогов при создании нового файла

    Проверка ошибок в сценарии bash

    Есть ли способ перечислить количество файлов при использовании dpkg -L для отображения файлов пакета?

    Exim4: как заблокировать список адресов получателей

    Как я могу исключить файлы по умолчанию с помощью rsync?

    Building MariaDB 5.5.27 без OQGraph: как снять флажок с плагина?

    Выполнение команды perl из оболочки и выполнение одной и той же команды из Perl-скрипта с использованием системной команды

    Apticron уведомляет об удаленных пакетах

    Извлечь строки из текста со строкой в ​​качестве входных данных

    Программный RAID слишком мал

    Предпочтительные типы файлов в командной строке

    Linux и Unix - лучшая ОС в мире.