ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Безопасность > *nix
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Неправильная работа perl скрипта в chroot
  #1  
Старый 16.03.2008, 13:32
Goudini
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
Провел на форуме:
1652093

Репутация: 490
Отправить сообщение для Goudini с помощью ICQ
Question Неправильная работа perl скрипта в chroot

Хочу запустить perl скрипт (веб сервер) в chroot окружении.
Скопировал bash, perl, его модули и всё нужное для работаы в каталог /home/bunny. Но приложение отказывается работать правильно. Вот мои действия

Код:
$ sudo chroot /home/bunny
bash-3.2# ls
bin  dev  etc  lib  root  usr
bash-3.2# cd root
bash-3.2# ls
index.html  server.pl  server.pl~
bash-3.2# cat server.pl
#!/usr/bin/perl
use IO::Socket::INET;

my $port = 8888;
my $ident = 'server';

my $serv = IO::Socket::INET->new(
  Proto     => 'tcp',
  LocalPort => $port,
  Listen    => SOMAXCONN,
  Reuse     => 1,
) or die "Can't start server: $!";

print "[Server $0 accepting clients at http://localhot:$port/]\n";

sub sendfile {
  my $client = shift;
  my $file = shift;
  open(FILE, $file);
  while (<FILE>) { print $client $_ };
  close FILE;
}

while (my $client = $serv->accept()) {
  $client->autoflush(1);
  
  my $request = <$client>;
  if ($request =~ m|^GET /(.*) HTTP/1.[01]|) {
    if ($1 eq 'index.html' or $1 eq '') { sendfile($client, 'index.html'); next }
    if (-e $1) {
      print $client "HTTP/1.0 200 OK\nServer: $ident\nContent-type: text/html\n\n";
      sendfile($client, $1);
    } else {
      print $client "HTTP/1.0 404 Not Found\nServer: $ident\n";
      print $client "Content-type: text/html\n\n";
      print $client "file $1 not found\n";
    }
  } else {
    print $client "HTTP/1.0 400 Bad Request\nServer: $ident\n";
    print $client "Conten-type: text/html\n\n";
    print $client "Bad request\n";
  }
  close $client;
}bash-3.2# perl server.pl
Can't start server: No such file or directory at server.pl line 7.
bash-3.2#
Без chroot`a всё работает хорошо. Пробовал дописывать в начало скрипта
Код:
chroot('/home/bunny');
но появляется всё та же ошибка

Can't start server: No such file or directory at server.pl line 11.

Почему Perl останавливается на этой строке?
Код:
my $serv = IO::Socket::INET->new(
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BookS: PHP, PERL, MySQL, JavaScript, HTML, ajax, Веб Дизайн M1nK0 PHP, PERL, MySQL, JavaScript 10 27.06.2009 21:35
Запуск Perl скрипта из командной строки Prince_Dark Windows 10 20.07.2007 12:37
Перевод статьи How to break out of a chroot() jail[как выйти из chroot] rent0n Авторские статьи 8 13.04.2006 08:15
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ