basic_getpwnam_auth просто не работает на Squid
Ребята! Это сводит меня с ума, поэтому я должен опубликовать это. Вот в чем дело: я просто пытаюсь настроить базовое http athenication для простого сервера squid. ОС CentOS 6.5, а установочный пакет - от yum:
[root@localhost squid]# cat ./squid.conf
#auth_param basic program /usr/lib64/squid/ttt.sh
auth_param basic program /usr/lib64/squid/basic_getpwnam_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 5 minutes
auth_param basic casesensitive off
authenticate_ttl 2 hour
acl passwd proxy_auth REQUIRED
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
http_access allow passwd
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
Когда я пытался войти, это всегда не удалось. Поэтому я сделал этот ttt.sh, чтобы обернуть вспомогательную программу, чтобы увидеть, что именно произошло:
#!/bin/bash
while read line
do
echo "$line" | tee -a /tmp/ttt.stdout | /usr/lib64/squid/basic_getpwnam_auth | tee -a /tmp/ttt.stdout
done
Учетная запись используется для проверки имени "ttt" с паролем "t", и результат говорит:
#/tmp/ttt.stdout
ttt t
ERR Wrong password
Имя учетной записи и пароль в порядке, когда я тестировал его на cmdline, получилось тоже хорошо.
[root@localhost squid]# echo ttt t | ./ttt.sh
OK
[root@localhost squid]# cat /tmp/ttt.stdout
ttt t
OK
Теперь я полностью потерян. Пожалуйста, кто-нибудь, спаси меня...