|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 02 Aug 2000 10:15:23 To : Dmitry Ochnev Subject : Re: выполнить сложную команду из перлового сценария -------------------------------------------------------------------------------- <Dmitry_Ochnev@f54.n5022.z2.fidonet.org> wrote: DO> В продолжение темы "сделать private download". DO> Hадо сделать такой SUBJ : DO> Есть программа - htpasswd , она создает и обновляет файл с паролями для DO> доступа юзеров к защищенной директории на сервере. DO> При запуске htpaswd /путь/к/файлу username она требует ввести пароль и DO> потом подтвердить его. DO> Команда, написанная наугад DO> exec(echo $password | echo $pasword | htpasswd /здесь/путь/к/файлу DO> $username); не сработала. Хотя, я и не ожидал, что сработает. Здесь привел DO> пример просто для приблизительной ясности : имя нового пользователя и пароль DO> содержатся в переменных. Скрипт должен запускать htpasswd, чтобы она DO> заносила в "базу" нового пользователя. Как это сделать ? Всего одна строчка DO> ведь нужна.. open(PASSWD,">> /путь/к/файлу"); print PASSWD $username.":".crypt($password,$salt); close PASSWD; Для стандартного crypt $salt должна состоять минимум из двух символов из набора [./0-9A-Za-z] (в perldoc -f crypt приводится выражение join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]' Если в операционке crypt(3) по жизни MD5, то у него salt длиннее, и надо смотреть доку на него. Hасколько я понимаю, что апач, что perl пользуются одной и той же функцией crypt, так что проблем быть не должно. Смена пароля, понятно, несколько сложнее - потребуется все-таки прочесть файл... -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.cgi.perl/3473b4fdb3cb.html, оценка из 5, голосов 10
|