The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




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

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

    Usermin ?

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

    delieta prosta ..

    stavish proftpd + mysql  + script na php


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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру