Всем привет! Может кто подскажет в каком формате указываються логины и пароли в файле
/usr/local/squid/etc/passwd при использовании ncsa_auth. Или может кто знает как сделать авторизацию пользователей по логину и пароли без особых заморочек, есть 5 пользователей для которых это необходимо сделать.
Спасибо
>Всем привет! Может кто подскажет в каком формате указываються логины и пароли
>в файле
>/usr/local/squid/etc/passwd при использовании ncsa_auth. Или может кто знает как сделать авторизацию пользователей
>по логину и пароли без особых заморочек, есть 5 пользователей для
>которых это необходимо сделать.
>Спасибо
прогой htpasswd генерятся, к примеру.
>прогой htpasswd генерятся, к примеру.
а как тогда юзер узнает, какой у него пароль??
>а как тогда юзер узнает, какой у него пароль??жжоте мля :)))) пат стулом
>>а как тогда юзер узнает, какой у него пароль??
>
>жжоте мля :)))) пат стуломну что тебе сказать - красавец, хоть в правилах и пишут чтоб не оскорблять - но ты видать сам их не читал и о коректности вообще не знаешь. Дуй на сайт падонкафф - там тебе место. Если человек меньше месяца со фрибсд работает, то что тут тебе смешного. Сиди под стулом и не вылазь.
а как вы узнали свой пароль? чтобы в систему войти?
или скажем заводите в системе нового пользователя - как он узнает свой пароль?
так и тут. заводите вы, и пароль каким-либо образом сообщаете пользователю
>>Всем привет! Может кто подскажет в каком формате указываються логины и пароли
>>в файле
>>/usr/local/squid/etc/passwd при использовании ncsa_auth. Или может кто знает как сделать авторизацию пользователей
>>по логину и пароли без особых заморочек, есть 5 пользователей для
>>которых это необходимо сделать.
>>Спасибо
>прогой htpasswd генерятся, к примеру.Можно использовать perl'овую функцию - crypt.
Вот так например:
###################################################################################
#!/usr/bin/perl -wuse strict;
use warnings;use IO::File;
BEGIN { srand() if $] < 5.004 }
my $user;
my $passwd;
my $pwd_file = "c:/squid/etc/passwd";
my $pwd_hash;my $fh = new IO::File $pwd_file, O_RDWR|O_CREAT or die "! Error open $pwd_file - $!\n";
while (<$fh>) {
chomp;
$pwd_hash->{$1} = $2 if /^(.+):(.+)$/;
}my @array = ('.', '/', 0..9, 'A'..'Z', 'a'..'z');
my $rnd_str = '';
$rnd_str .= $array[ rand @array ] for (0..7) ;print "Введите имя: ";
$user = <STDIN>;
chomp($user);
die "! User $user alredy exist.\n" if exists $pwd_hash->{$user};
print "Введите пароль: ";
$passwd = <STDIN>;
chomp($passwd);
$passwd = crypt $passwd, "$rnd_str";print $fh "$user:$passwd\n";
$fh->truncate(tell($fh));
$fh->close;
>Можно использовать perl'овую функцию - crypt.
>
А в даном случае тоже используеться ncsa_auth ? То есть этот скрипт можна применять как альтернативу htpasswd ? Если можна - чуть по-подробнее, пожалуйста
отвечаю на свой вопрос (нашёл наконец как это сделать). Сквид необходимо собрать с поддержкой ncsa_auth , в конфиге сквида необходимо добавить строку в которой указываем что используем ncsa_auth , у меня она выглядит так:
auth_program basic /usr/local/libexec/squid /usr/local/squid/users
здесь /usr/local/libexec/squid это указываем путь где находиться прога авторизации, а
/usr/local/squid/users это путь к файлу откуда необходимо считывать инфу о логине и пароле юзера. Для того чтобы записать данные о пользователе используеться htpasswd от апача.
далее писал команду в консоли /usr/local/apache2/bin/htpasswd -c /usr/local/squid/users и после нажатия ввода вводил пароль. Опция -с нужна только один раз, дальше без неё ибо будет перезаписывать строку и в итоге будет только один юзер. Может у кого-то по другому?? поделитесь. У меня работает
ещё забыл добавить, что у меня стоит apache, поэтому отдельно htpasswd
мне не надо было ставить, а так читал что htpasswd можна отдельно доставить