После сегодняшнего обновления разладилась любовь между htpasswd и apache: первый по умолчанию генерирует пароли зашифрованные системным вызовом crypt() (если верить ману), а apache их принимать отказывается. Пароли, сгенерированные htpasswd с опцией -m работают. Имеется в виду вот этот апач: apache-1.3.41rusPL30.23-alt4 Steps to Reproduce: 1.# htpasswd /usr/local/lib/passwdfile newuser 2.Enter new password, re-enter. 3.Go to password-protected page, enter correct password, login denied. Actual Results: No login to password-protected pages (Basic authentication) Expected Results: Page loads
Иван, я уже вернулся из поездки, но всё так же не знаю, что с этим делать. 2 ldv: нет идей?
(In reply to comment #1) > Иван, я уже вернулся из поездки, но всё так же не знаю, что с этим делать. > > 2 ldv: нет идей? Я не знаю, как ты этого добился, да и к самому htpasswd уже давно утратил интерес.
Лёш, посмотришь при возможности?
(In reply to comment #3) > Лёш, посмотришь при возможности? > (In reply to comment #2) > (In reply to comment #1) > > Иван, я уже вернулся из поездки, но всё так же не знаю, что с этим делать. > > > > 2 ldv: нет идей? > > Я не знаю, как ты этого добился, да и к самому htpasswd уже давно утратил интерес. А что вместо него? Вчера проблема воспроизвелась на новом компьютере со свежеустановленным apache2-2.2.9-alt8.1, причем система - x86_64, в отличие от x86_32 на первом. Так что на local misconfiguration не похоже. Пароли, сгенерированные методом по умолчанию, не распознаются. Если добавить ключик -m - распознаются.
(In reply to comment #3) > Лёш, посмотришь при возможности? OK, проверю.
Проверил на apache2-2.2.9-alt9. Результат странный: 1. Задействовать Require user неудалось вообще -- Error 500 на выходе и ругань в /var/log/httpd2/error_log: [crit] [client 192.168.1.101] configuration error: couldn't check access. No groups file?: / Эффект наблюдается независимо от того, определён ли AuthGroupFile, существует и/или корректен ли он... 2. Require group работает правельно, независимо от того какой алгоритм использовался при задании пароля (проверял htpasswd2 {,-{d,m}})...
С apache-1.3.41rusPL30.23-alt4.5 вообще весело: [Tue Aug 19 20:07:10 2008] [error] [client 192.168.1.101] (13)Permission denied: Could not open password file: /etc/httpd/conf/passwd/passwd [Tue Aug 19 20:07:10 2008] [error] [client 192.168.1.101] user test3 not found: / Хотя: $ sudo -H ls -lA /etc/httpd/conf/passwd/ total 8 -rw-r----- 1 root apache 44 Aug 19 20:06 passwd
У меня-то работает. Сделай su - apache -s /bin/bash и попробуй зайти в тот каталог?
(In reply to comment #8) > У меня-то работает. > > Сделай su - apache -s /bin/bash и попробуй зайти в тот каталог? Ларчик просто открывался: $ ls -lA /etc/httpd /etc/httpd: итого 0 drwxr-x--- 8 root webmaster 424 Авг 19 20:02 conf apache -- в группу webmaster не входит... Думаю, что для каталогаов /etc/httpd{,2}/conf (и ниже) стоит поставить 2775 root:webmaster (для файлов -- 664 root:webmaster). (Исключение -- ssl ключи и сертификаты.)
(In reply to comment #9) > Думаю, что для каталогаов /etc/httpd{,2}/conf (и ниже) стоит поставить 2775 root:webmaster > (для файлов -- 664 root:webmaster). (Исключение -- ssl ключи и сертификаты.) Зачем? Всё, что нужно из конфигурации -- читается рутовым апачем. А .htaccess/.htpasswd туда отродясь не клали. Их клали в виртхосты (.htpasswd -- не в html/ или htdocs/, разумеется).
(In reply to comment #9) > (In reply to comment #8) > > У меня-то работает. > > > > Сделай su - apache -s /bin/bash и попробуй зайти в тот каталог? > > Ларчик просто открывался: > > $ ls -lA /etc/httpd > /etc/httpd: > итого 0 > drwxr-x--- 8 root webmaster 424 Авг 19 20:02 conf > > apache -- в группу webmaster не входит... > После правки прав всё работает (проверял htpasswd {,-{d,m}}).
(In reply to comment #10) > (In reply to comment #9) > > Думаю, что для каталогаов /etc/httpd{,2}/conf (и ниже) стоит поставить 2775 root:webmaster > > (для файлов -- 664 root:webmaster). (Исключение -- ssl ключи и сертификаты.) > Зачем? > > Всё, что нужно из конфигурации -- читается рутовым апачем. > > А .htaccess/.htpasswd туда отродясь не клали. А я там обычно глобальные для сервера файлы паролей складывал... > > Их клали в виртхосты (.htpasswd -- не в html/ или htdocs/, разумеется). Давай тогда зафиксируем правельное для них место с учётом того, что для apache и apache2 файлы поролей возможно не совместимы (это сейчас проверю).
На данный момент: 1. apache-1.3.41rusPL30.23-alt4.5 понимает пароли сгенирированные htpasswd{,2} {,-{d,m}}, но непонимает пароли сгенерированные с опцией -s (htpasswd или htpasswd2 -- не важно). 2. apache2-2.2.9-alt9 понимает всё, сгенерированное htpasswd2 {,-{d,m,s}} и htpasswd2 {,-{d,m}} (непонимает опцию -s у htpasswd)... PS: Похоже надо сгенирировать SHA пароль сторонними средствами и проверить...
(In reply to comment #12) > Давай тогда зафиксируем правельное для них место с учётом того, что для apache > и apache2 файлы поролей возможно не совместимы (это сейчас проверю). Давай спросим в sysadmins@ (и если удобно -- глянь в дебиане)?
(In reply to comment #13) > > PS: Похоже надо сгенирировать SHA пароль сторонними средствами и проверить... > 1. Генерация: $ /usr/sbin/slappasswd -s test -h {SHA} {SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= 2. Добавил в файл парорлей: test7:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= Работает в apache2-2.2.9-alt9, но не работает в apache-1.3.41rusPL30.23-alt4.5 Похоже у apache-1.3.41rusPL30.23-alt4.5 с SHA паролями всё плохо... Это его нормальное состояние?
(In reply to comment #15) > (In reply to comment #13) > > > > PS: Похоже надо сгенирировать SHA пароль сторонними средствами и проверить... > > > > 1. Генерация: > > $ /usr/sbin/slappasswd -s test -h {SHA} > {SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= > > 2. Добавил в файл парорлей: > > test7:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= > > Работает в apache2-2.2.9-alt9, но не работает в apache-1.3.41rusPL30.23-alt4.5 > > Похоже у apache-1.3.41rusPL30.23-alt4.5 с SHA паролями всё плохо... Это его нормальное > состояние? Народ, вы отвлеклись, а мой багрепорт кто-нибудь проверит? Напоминаю: # htpasswd{2} /var/lib/гдетотам ктототам генерирует пароли, которые не принимает соотв., apache/apache2. Тогда как; # htpasswd{2} -d /var/lib/гдетотам ктототам генерирует пароли, которые работают. Хотя в мане написано, что ключик -d (криптованые пароли) - это умолчательное поведение в Linux. Про SHA пароли я даже и не заикался.
(In reply to comment #16) > (In reply to comment #15) > > (In reply to comment #13) > > > > > > PS: Похоже надо сгенирировать SHA пароль сторонними средствами и проверить... > > > > > > > 1. Генерация: > > > > $ /usr/sbin/slappasswd -s test -h {SHA} > > {SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= > > > > 2. Добавил в файл парорлей: > > > > test7:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= > > > > Работает в apache2-2.2.9-alt9, но не работает в apache-1.3.41rusPL30.23-alt4.5 > > > > Похоже у apache-1.3.41rusPL30.23-alt4.5 с SHA паролями всё плохо... Это его нормальное > > состояние? > > Народ, вы отвлеклись, а мой багрепорт кто-нибудь проверит? Напоминаю: > > # htpasswd{2} /var/lib/гдетотам ктототам > > генерирует пароли, которые не принимает соотв., apache/apache2. Тогда как; > > # htpasswd{2} -d /var/lib/гдетотам ктототам > > генерирует пароли, которые работают. Хотя в мане написано, что ключик -d > (криптованые пароли) - это умолчательное поведение в Linux. Повторить не удаётся (см. comment #6 и #11): пароли сгенерированные htpasswd{,2} {,-d} работают одинаково. (При проверке выплыло другое.) > > Про SHA пароли я даже и не заикался. Оно выплыло при проверке взаимозаменяемости htpasswd{,2}: смотрел можно ли иметь один парольный файл для обоих apache`й (comment #12 и #13)...
(In reply to comment #13) > На данный момент: > > 1. apache-1.3.41rusPL30.23-alt4.5 понимает пароли сгенирированные htpasswd{,2} {,-{d,m}}, но > непонимает пароли сгенерированные с опцией -s (htpasswd или htpasswd2 -- не важно). > > 2. apache2-2.2.9-alt9 понимает всё, сгенерированное htpasswd2 {,-{d,m,s}} и htpasswd2 {,-{d,m}} > (непонимает опцию -s у htpasswd)... Проверил версии из бранча 4.1: 1. apache-1.3.41rusPL30.23-alt4 непонимает SHA пароли. Строки сгенирированные htpasswd {,-{d,m}} -- принимаются без вопросов (данную багу не обнаружил). 2. apache2-2.2.8-alt1 -- нормально ест строки сгенирированные htpasswd2 {,-{d,m,s}} (данную багу не обнаружил) но имеет проблемы с Require user (см. comment #6). PS: Все мои проверки касались сборок под x86_64, i586 -- не проверял.
По мотивам раскопок данного бага открыл https://bugzilla.altlinux.org/show_bug.cgi?id=16779 и https://bugzilla.altlinux.org/show_bug.cgi?id=16778
(In reply to comment #19) > По мотивам раскопок данного бага открыл https://bugzilla.altlinux.org/show_bug.cgi?id=16779 Ошибся. Открыл https://bugzilla.altlinux.org/show_bug.cgi?id=16777, а не #16779 > и https://bugzilla.altlinux.org/show_bug.cgi?id=16778 >
Кто подскажет: как в апаче поставить пароль на директорию? нужно запаролить /var/www/html/lightsquid/admin. 1 создаю /var/www/html/lightsquid/admin/.htaccess AuthName "lightsquid administrator mode" AuthType Basic AuthUserFile /var/www/html/lightsquid/admin/.htpasswd require user admin 2 создаю /var/www/html/lightsquid/admin/.htpasswd htpasswd -bcm /var/www/html/lightsquid/admin/.htpasswd admin admin 3 пробую зайти ввожу пароль и получаю ошибку 500 смотрю логи http: [Tue Jul 28 15:43:00 2009] [error] (25)Inappropriate ioctl for device: access to /lightsquid/admin/user_detail.cgi failed for 192.168.2.1, reason: Authentication service cannot retrieve authentication info Yury L.Olkov wrote: > Привет. > > Права на файлы .ht* проверь для начала [user@SERVER 20:40:34 ~]$ ls -la /var/www/html/lightsquid/admin/.h* -rw-r--r-- 1 lightsquid lightsquid 108 Июл 28 17:13 /var/www/html/lightsquid/admin/.htaccess -rw-r--r-- 1 lightsquid lightsquid 108 Июл 28 17:12 /var/www/html/lightsquid/admin/.htaccess~ -rw-r--r-- 1 lightsquid lightsquid 20 Июл 28 14:00 /var/www/html/lightsquid/admin/.htpasswd [user@SERVER 20:42:23 ~]$ id lightsquid uid=123(lightsquid) gid=58(lightsquid) группы=58(lightsquid),23(squid) сделал chmod -R 777 /var/www/html/lightsquid/admin -- не помогает Сделал htpasswd -bcm /var/www/html/lightsquid/admin/.htpasswd admin admin -- не помогает [user@SERVER 20:54:11 ~]$ rpm -qa | egrep "apache|auth" apache2-2.2.4-alt24 apache2-mod_ssl-2.2.4-alt24 mod_auth_pam-1.1.1-alt1 apache2-common-2.2.4-alt24 apache-1.3.41rusPL30.23-alt1 apache-common-1.3.41rusPL30.23-alt1 apache2-httpd-prefork-2.2.4-alt24
Похоже, "не шмогли". Предлагаю использовать htpasswd -m.