>>Приветствую всех.
>>Хочу сделать бесплатный хостинг в локальной сети.
>>Встал вопрос: как пользователь сможет изменить свой пароль для доступа к своему
>>домашнему каталогу через ftp? По ssh я пускать их не хочу
>>на сервер. (Или можно как то закрыть пользователя в домашнем каталоге?)
>>
>>sudo тоже применять думаю нет смысла (опасно).
>>Если есть какие то идеи по этому поводу, отпишитесь пожалуйста. Заранее спасибо.
>>
>
>delieta prosta ..
>
>stavish proftpd + mysql + script na php
вот тебе скрпит.
В веб форме примерно такое. Скрипт проверит старый пасс и заменит на новый если все ок.Схемка немного опасная, но в целом если внутри лана юзать, то пойдет. По крайней мере все просто.
в хтмлку:
<FORM
action=passwd.cgi
method=post style="DISPLAY: inline"
AUTOCOMPLETE="off">
<B>Введите ваше имя <br>
<INPUT id=email maxLength=50 name=email maxLength=50 type=text> <br>
Введите ваш новый пароль:</B><br>
<INPUT id=repass maxLength=50 name=repass maxLength=50 type=text>
<br><br>
Введите ваш старый пароль:</B><br>
<INPUT id=pass_old maxLength=50 name=pass_old maxLength=50 type=text>
<br><br>
<INPUT border=0 src="green_so_btn.gif"
type=image></body></html>
Сам passwd.cgi:
#!/usr/bin/perl -w
################################################################################
use strict;
use IO::Socket qw(:DEFAULT :crlf);
use strict;
use CGI qw(:param);
use CGI qw(:standard);
my $host = shift || 'your.ftp_host';
my $port = shift || '21';
my $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port) or die "no sock $!";
my $answer;
my $username = param('email');
my $mypass = param('repass');
my $pass_old = param('pass_old');
$answer = <$socket>;
# send username, pass
print $socket "user " . $username,CRLF;
$answer = <$socket>;
print $socket "pass " . $pass_old,CRLF;
$answer .= <$socket>;
print $socket "quit " ,CRLF;
#print "$answer\n";
my $mess = "$answer";
#print $mess;
if ($mess =~ m/logged in/) {
print "Content-type: text/html\n\n";
# ТУТ СТАВИШЬ СИСТЕМНУЮ КОМАНДУ
system "/usr/bin/passwd $username $mypass";
printf "Пароль успешно изменен!\n";
} else {
print "Content-type: text/html\n\n";
printf "Хуй волкам сказала красная шапочка, и почесала свою волосатую грудь! Старые пaроль не тот\n";
};
Должно работать.