Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> иллюзия в файловой ситеме 
:(
    Опции темы
gcc
Дата 4.6.2008, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



нужно сделать програмку которая будет иметь веб интерфейс и работать от супер пользовтеля на unix

(cpanel и webmin работает с под рута???)


искал не нашел, сложнова-то найти...

ну тоесть чтобы при запросе, не сделали запрос который откроет другие файлы и не удалит что либо

делаю упреваление программами и админку, тут нужно только с под root'a?...

какое регулярное выражение спасет от иллюзий?? 

Это сообщение отредактировал(а) gcc - 4.6.2008, 20:09
PM WWW ICQ Skype GTalk Jabber   Вверх
arto
Дата 4.6.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



каких иллюзий?

PM MAIL ICQ   Вверх
gcc
Дата 4.6.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Цитата(arto @ 4.6.2008,  21:09)
каких иллюзий?


Цитата(gcc @ 4.6.2008, 20:09)
ну тоесть чтобы при запросе, не сделали запрос который откроет другие файлы и не удалит что либо


Это сообщение отредактировал(а) gcc - 4.6.2008, 21:22
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 4.6.2008, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Ничего не понял... Пока читал, посетили мысли начиная от -Т, заканчивая чрутом


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
shamber
Дата 5.6.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



gcc, подробнее мысли изложите
PM MAIL Jabber   Вверх
BurnerCode
Дата 5.6.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.2.2008
Где: Беларусь

Репутация: нет
Всего: нет



PM MAIL   Вверх
gcc
Дата 5.6.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Цитата(BurnerCode @ 5.6.2008,  09:33)
ps: http://www.webmin.com/download.html

тут нету для хостинга, он платный, захотелось свой сделать, такое как plesk а webmin от рута работает?  и вообще многие панельки на пхп написаны там много чего нету... много чего можно "прицепить" из модуей perl....



ну если нужно отправить текст из формы dsdf;sdfsdf/ыва

то как сделать чтобы из этого не было rm -rf /* или exec rm -rf /*  ???

ну тоесть это работае с под root'a!







Это сообщение отредактировал(а) gcc - 5.6.2008, 11:20
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 5.6.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



 smile 
gcc, попробуйте расставлять запятые в предложениях...

Вам надо фильтровать данные. На форуме была статья на эту тему, воспользуйтесь поиском.
Причем если вы действительно собираетесь работать из под рута, то вам надо очень хорошо позаботиться о безопасности. Любая ошибка в безопасности такого скрипта может привести к плачевным ситуациям.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
nitr
Дата 6.6.2008, 00:17 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



gcc, если честно, рано ещё писать какие-либо системы управления. Это имхо и исходит из ваших постов.
Вам надо почитать по этой теме слишком много документации, вам надо изучить другие системы, чтобы не велосипед изобретать, а написать что-то подобающее.

Если же для личных целях, то сначала документацию, а потом изучение уже готовых. Далее, основываясь на полученных знаниях написать для себя, возможно потом привлекаете людей/энтузиастов и пишите продукт, который конкурирует со многими smile
Но до этого трудный путь... не с того начали...


--------------------
PM   Вверх
gcc
Дата 6.6.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Цитата(nitr @ 6.6.2008,  00:17)
gcc, если честно, рано ещё писать какие-либо системы управления. Это имхо и исходит из ваших постов.
Вам надо почитать по этой теме слишком много документации, вам надо изучить другие системы, чтобы не велосипед изобретать, а написать что-то подобающее.

а что тогда писать? по пунктам можно? 1) 2)
сделал сайт, точти такой как этот topdj.ua все хорошо работает: пользователи, галерея, рейтинг, админка + другие возможности, но дизайн не полулось, не знаю что с ним делать дальше, и зачем я его делал??

ну как я представляю:
есть apache, и .т.д.

к нему: логи в sql, конфиг виртульного хост в sql или в файл и каталог с данными! и т.д.!
ну и модули отдельный для чего нибудь, в эту самую программу smile

дальше все в понятно... (считаем сам трафик, изменям все что надо в конфиге, например домен еще один добавить, аканут и тариф и ++)
(я заметил что нету нигде графиком загреженности процессора и памяти для сайта, а на перле можно сделать!)
могут поломать, но perl считаеться безопасный...

и такое стоит даже не мало от 10 до 150$ в month
хотя я не пользуюсь, но смысл такое делать есть,сделать бесплатную smile или нет?




Это сообщение отредактировал(а) gcc - 6.6.2008, 01:30
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 6.6.2008, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Есть смысл делать бесплатную, но мало кто понимает это ;)


--------------------
PM   Вверх
gcc
Дата 6.6.2008, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



потом что-то платное сделать...

вот пуллер, который будет добавлять аккаунты (и удалять, ну  и лучше сделать все)
Код


#!/usr/local/bin/perl

#use strict;
#use CGI qw(:standard);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
#use CGI 'param','header';
use DBD::mysql;
use Math::Round qw(nearest);
use Image::Magick;

#use strict;
use warnings;
use CGI::Cookie;
use Storable;
use vars '$dbh', '%user_vars';
use CGI qw(param);
use POSIX;
use Digest::MD5 qw(md5_hex);
use Encode qw(encode_utf8);
use CGI qw/:standard/;


sub filelock {
flock(DB,2);
}
sub fileunlock {
flock(DB,8);
}

sub get_time {
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 $mon++;
 $year+=1900;
 if ($mday<10) { $mday="0$mday"; }
 if ($mon<10) { $mon="0$mon"; }
 if ($min<10) { $min="0$min"; }
 $date="$mday $mon $year";
 $time="$hour:$min:$sec";
 $cur_all_day=$mday+$mon*30+$year*365;
}
&get_time;

$radate="$year-$mon-$mday $hour:$min:$sec";

#($sec,$min,$hour,$mday) = localtime(time);
#$radate=time;

sub logsave {
my $self = shift;
@logfile="
\n
time:  $radate \n
vhost: $name \n
qhost: $qhost   \n
erroe: $self\n
 \n
";

open (DB2, "/var/log/httpd/hostingcron.log") || die print "Cannot open file $basefile: $!";
@base = <DB2>;
close(DB2);

open (DB, ">/var/log/httpd/hostingcron.log") || die print "Cannot open file $basefile: $!";
&filelock;
truncate(DB,0);
print DB @base;
print DB @logfile;
&fileunlock;
close(DB);
}



















#datetimecur - posledmyaya izmenenaya

$dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost","","", { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;

#my $ti= "1";


my $sth = $dbh->prepare("
        SELECT MAX(datetimecur), MAX(datetime)  FROM users   limit 1
      ");
$sth->execute();
my ($maxdatetimecur, $maxdatetime) = $sth->fetchrow_array();
$sth->finish();

#if ($maxdatetimecur=$maxdatetime) {exit;}

print $maxdatetimecur;
print $maxdatetime;






($sec,$min,$hour,$mday) = localtime(time);
$ttt=time;
print "$ttt";







#and


my $sth = $dbh->prepare("
        SELECT id FROM users where datetime = $maxdatetime  limit 1
      ");
$sth->execute();
my ($date_id) = $sth->fetchrow_array();
$sth->finish();



#select name, pass from users where 1 <  id and id <= 2;

my $sth = $dbh->prepare("
        select name, pass, q from users where $maxdatetimecur <  datetime and datetime <= $maxdatetime
      ");
$sth->execute();
#my ($login, $pass, $qhost) = $sth->fetchrow_array();

while ( ($login, $pass, $qhost) = $sth->fetchrow_array() )    {
$sth->finish();
$dbh->disconnect();











#proverka logina

my $Result = system("pw usershow $qhost");

if ($Result < 1) {
my $fff="erroe: 601 proverka logina\n";
&logsave($fff);
}













#dobavlenie polzovatelya
my $Result0 = system("pw  useradd  $qhost -c UserDomain = $login.q6.org.ua -L webuser -s /sbin/nologin -d /home/$qhost");
if ($Result0 < 1) {

my $fff="erroe: 602 pdobavlenie polzovatelya\n";
&logsave($fff);

}





my $Result1 = system("pw groupmod $qhost -m www");

if ($Result1 < 1) {
my $fff="erroe: 603 pdobavlenie grupu www\n";
&logsave($fff);
}






my $infouser9 = system("pw usershow $qhost");

if ($infouser9 < 1) {
my $fff="erroe: 610 ne polu4ilosya posmotret polzovatelya uid gid \n";
&logsave($fff);
}

my ($user, $grup, $uid, $gid,)=split(/\:/, $infouser);



#dobavlyaem polzovatelya v ftp
my $dbh = DBI->connect("DBI:mysql:database=ftp;host=localhost",) || die $DBI::errstr;
# готовим запрос
my $Resul2 = $dbh->prepare("INSERT INTO `users_table`  (  username,  password,   groupname,  uid,  gid,  homedir,  shell, last_login,  login_count,  last_err_login,  err_login_count)  VALUES ('$qhost','$passs','$qhost','$uid','$gid','/home/$qhost','/sbin/nologin',0,0,0,0)");
$Result2->execute();
$sth->finish();
$dbh->disconnect();

if ($Result2 < 1) {
my $fff="erroe: 604 dobavlenie polzovatelya v ftp\n";
&logsave($fff);
}







if (-e /home/$qhost) 
 {
my $fff="erroe: 505 katalog suwestvuet\n";
&logsave($fff);
}


my $Result3 = system("mkdir /home/$qhost");
if ($Result3 < 1) {
my $fff="erroe: 605 ne sozdaetsay katalog\n";
&logsave($fff);
}




my $Result4 = system("cp -R /usr/local/www/home /home/$qhost");
if ($Result4 < 1) {
my $fff="erroe: 606 ne kopiruetsya katalogi\n";
&logsave($fff);
}




my $Result5 = system("chown -R $qhost:$qhost /home/$qhost");
if ($Result5 < 1) {
my $fff="erroe: 607 ne vistablyautsta prava\n";
&logsave($fff);
}







my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",) || die $DBI::errstr;
# готовим запрос

my $res = $dbh->prepare("CREATE DATABASE IF NOT EXISTS $qhost_db");
my $res2 = $dbh->prepare("GRANT ALL PRIVILEGES on $qhost.* to $qhost@localhost IDENTIFIED BY '$passs' ");

$res->execute();
$res2->execute();

# У вас эта ситуация может и не возникнуть.
$res->finish();
$res2->finish();


$dbh->disconnect();












@base=" 

<VirtualHost *:80>
        ScriptAlias /cgi-bin \"/home/$qhost/www/cgi-bin\"
        ServerAdmin     @ukr.net
#       AliasMatch      ^/~([^/]+)(/.*)*        /usr/home/$1/data$2
        DocumentRoot    /home/$qhost/www/data
        ServerName      $login.x0.org.ua
        ServerAlias     www.$login.x0.org.ua
        SuexecUserGroup $qhost   $qhost
        Alias           /php-fcgi/      /home/$qhost/www/cgi-bin/
        CustomLog       /home/$qhost/log/httpd-access.log       combined
        ErrorLog        /home/$qhost/log/httpd-error.log
    
  CBandClassLimit world 150M
  CBandExceededSpeed 32 5 55
  CBandSpeed 4096 20 60
  CBandRemoteSpeed 512 6 6
  CBandScoreboard /var/www/scoreboard
  CBandPeriod 4W
</VirtualHost>";


if (-e /usr/local/etc/apache22/hosting/$login.conf) 
 {
my $fff="erroe: 506 file vhost suwestvuet\n";
&logsave($fff);
}



open (DB11, ">/usr/local/etc/apache22/hosting/$login.conf") || die print "Cannot open file $basefile: $!";
&filelock;
truncate(DB11,0);
# Записываем полученные данные в начало
# ($idd, $log, $passswd, $city, $emaill, $komm,$ip)=split(/\;/, $str);
#print DB "$id;$login\;$passwd\;$city\;$email\;$title\;$time\;$date\;$ip\;\n";
print DB11 @base;
&fileunlock;
close(DB11);







$fs="/usr/home";
$user_datasize="50";


#edquota -e $fs:$user_datasize:$user_datasize}:$user_inode}:${user_inode} ${user_name}


my $Result6 = system("edquota -e $fs:$user_datasize:$user_datasize $qhost");


if ($Result5 < 1) {
my $fff="erroe: 608 Ne postavilis kvoti\n";
&logsave($fff);
}
}

#posledniy dobavlennii

$dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
my $result = $dbh->prepare("UPDATE users SET datetimecur = ? WHERE id = ?") || die "aw";
$result->execute($maxdatetime, $date_id);
$result->finish();
$dbh->disconnect();

exit;


Это сообщение отредактировал(а) gcc - 6.6.2008, 02:07
PM WWW ICQ Skype GTalk Jabber   Вверх
arto
Дата 6.6.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



# perl -Wc test.pl >| /dev/null |& wc -l
32
# 

IMHO вам надо сначала научиться аккуратно писать.

Добавлено через 1 минуту и 11 секунд
btw,

# perl -Mstrict -Wc test.pl >| /dev/null |& wc -l
160
# 
PM MAIL ICQ   Вверх
KSURi
Дата 6.6.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Да видно буквально с первых строк...

Цитата(gcc @  6.6.2008,  01:45 Найти цитируемый пост)
Код

flock(DB,2);


Цитата(gcc @  6.6.2008,  01:45 Найти цитируемый пост)
Код

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);




--------------------
Died at Life.pl line 21
PM Jabber   Вверх
BurnerCode
Дата 6.6.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.2.2008
Где: Беларусь

Репутация: нет
Всего: нет



gcc где ты увидел что webmin платный? http://www.webmin.com/download.html

Ранше им пользовался еще оч давно, от рута работает, это вообщето для этого он и предназначен:

Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms, you can setup user accounts, internet services, DNS, file sharing and so on.

Рекомендую посещать этот ресурс http://freshmeat.net/projects/webmin/ с бесплатным софтом.

А графики и загрузку проца тож пож поискать на фрешмите + на cpan-e есть модули для проверки загрузки проца, да и top  или ps в perl-обвертке можна использовать.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.