не пускает в инет, если русское имя у пользователя в AD
вот что пишет в логах сквида:
1244709634.825 5 192.168.1.3 TCP_DENIED/403 1407 GET http://go.microsoft.com/fwlink/?
%cc%cf%cd%cf%d7%c3%c5%d7_%d7_%d3 NONE/- text/html
что смотреть? где перекодировать?
iconv поможет мне или нет?
на сайте все отображается нормально.
Вообщем запись данного вида
%cc%cf%cd%cf%d7%c3%c5%d7_%d7_%d3
говорит о том что имя было преобразовано в html кодировку
(это насколько я понял)
немного покопавшись в инете нашел такой скрипт
#!/bin/awk -f
BEGIN {
for(i = 0; i < 10; i++)
hex[i] = i
hex["A"] = hex["a"] = 10
hex["B"] = hex["b"] = 11
hex["C"] = hex["c"] = 12
hex["D"] = hex["d"] = 13
hex["E"] = hex["e"] = 14
hex["F"] = hex["f"] = 15
}
{
########################################################################
# 8 - колонка - это имя пользователя
# urldecode - в awk в стандартную библиотеку не входит, но можно найти
# http://geni.ath.cx/unix.html#_One-liner_urldecode_functions
name = $8
name_decode = ""
gsub(/\+/, " ", name)
while(match(name, /%../)){
if(RSTART > 1)
name_decode = name_decode sprintf("%s", substr(name, 1, RSTART-1))
name_decode = name_decode sprintf("%c", hex[substr(name, RSTART+1, 1)] * 16 + hex[substr(name, RSTART+2, 1)])
name = substr(name, RSTART+RLENGTH)
}
name_decode = name_decode name
########################################################################
$8 = name_decode
print
}
скормив ему лог squid созданного пользователя с русским логином получил лишь нечитаемую строку
после этого добавил в конвеер iconv и тоже ничего не получилось
но в конце концов пришел вот к такой команде
cat data | ./convert.sh | iconv -f cp866 -t utf8
data файл с логами squid
convert.sh это скрипт на awk
ну дальше понятно и получил на выходе русское имя, но только заглавными буквами (хотя в домене маленькими)
Дальше я думаю люди которые побольше меня знают смогут усовершенствовать
И кстати я так понимаю что не получится с русскими именами раздавать интернет.
Потому как имена в acl файлах должны будут иметь вид %92%85%91%92.
Будет время может сам разберусь дальше.
не выходит
ставлю display charset = cp1251 - при выборе имени для ввода в самс имена отображаются абракадаброй
Спасибо! буду пробовать!
%cc%cf%cd%cf%d7%c3%c5%d7_%d7_%d3 - имя в url кодировке.
авторизация NTLM ?
установи для начала необходимые кодировки. (cp866,cp1251)
в smb.conf добавь
dos charset = cp866
unix charset = cp1251
display charset = cp1251