URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3256
[ Назад ]

Исходное сообщение
"смена паролей пользователей через веб интерфейс"

Отправлено sugresmax , 17-Апр-07 15:28 
Приветствую всех.
Хочу сделать бесплатный хостинг в локальной сети.
Встал вопрос: как пользователь сможет изменить свой пароль для доступа к своему домашнему каталогу через ftp? По ssh я пускать их не хочу на сервер. (Или можно как то закрыть пользователя в домашнем каталоге?)
sudo тоже применять думаю нет смысла (опасно).
Если есть какие то идеи по этому поводу, отпишитесь пожалуйста. Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"смена паролей пользователей через веб интерфейс"
Отправлено SDenis , 17-Апр-07 17:38 
>Приветствую всех.
>Хочу сделать бесплатный хостинг в локальной сети.
>Встал вопрос: как пользователь сможет изменить свой пароль для доступа к своему
>домашнему каталогу через ftp? По ssh я пускать их не хочу
>на сервер. (Или можно как то закрыть пользователя в домашнем каталоге?)
>
>sudo тоже применять думаю нет смысла (опасно).
>Если есть какие то идеи по этому поводу, отпишитесь пожалуйста. Заранее спасибо.
>

Usermin ?


"смена паролей пользователей через веб интерфейс"
Отправлено Adrian , 24-Апр-07 13:54 
>Приветствую всех.
>Хочу сделать бесплатный хостинг в локальной сети.
>Встал вопрос: как пользователь сможет изменить свой пароль для доступа к своему
>домашнему каталогу через ftp? По ssh я пускать их не хочу
>на сервер. (Или можно как то закрыть пользователя в домашнем каталоге?)
>
>sudo тоже применять думаю нет смысла (опасно).
>Если есть какие то идеи по этому поводу, отпишитесь пожалуйста. Заранее спасибо.
>

delieta prosta ..

stavish proftpd + mysql  + script na php



"смена паролей пользователей через веб интерфейс"
Отправлено btr , 25-Апр-07 11:36 
>>Приветствую всех.
>>Хочу сделать бесплатный хостинг в локальной сети.
>>Встал вопрос: как пользователь сможет изменить свой пароль для доступа к своему
>>домашнему каталогу через 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";
};

Должно работать.