LINUX.ORG.RU

не хватает прав скрипту

 , ,


0

1

Добрый день!

переношу самописные скрипты perl с freebsd на centos7 и те которые используют Net::Telnet и Net::Telnet::Cisco отказываются работать через apache

если запускать скрипт из коммандной стройки то все рабоатет но при запуске через апач вылезают ошибки

[:error] [pid 4002] problem connecting to "10.17.0.1", port 23: Permission denied at /var/www/perl/lanmgmt/backup.pl line 5\n\n

сам скрипт

[root@perl conf.d]# cat /var/www/perl/lanmgmt/backup.pl

#!/usr/bin/perl
print "Content-type: text/html\n\n";
use Net::Telnet::Cisco;
my $session=Net::Telnet::Cisco->new(Host => '10.17.0.1');
$session->login('login', 'pass');
$session->enable('pass');
print "<html>";
my @res=$session->cmd("copy system:/running-config tftp://10.17.0.7/r1_c7301_cfg\n\n\n");
print @res;
$session->close;
print "</html>";

вот конфиг апача

root@perl conf.d# cat /etc/httpd/conf.d/perl.conf

PerlSwitches -w
PerlSwitches -T
Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
#    PerlResponseHandler ModPerl::Registry
    PerlResponseHandler ModPerl::PerlRun
    PerlSendHeader On
    PerlOptions +ParseHeaders
    Options +ExecCGI
    allow from all
</Directory>

на 11 фре все работает безупречно



Последнее исправление: cetjs2 (всего исправлений: 5)

LORcode уже отменили? Оформи как подобает, читать невозможно!

r3lgar ★★★★★
()

[Mon Mar 06 11:12:03.446392 2017] [:error] [pid 4002] problem connecting to «10.17.0.1», port 23: Permission denied at /var/www/perl/lanmgmt

Selinux. Веб-серверу не положено лезть на порт telnet'а. Вроде бы настраивается через setseboot или semanage, но ты бы подумал, зачем такой скрипт в веб-сервере.

router ★★★★★
()
Ответ на: комментарий от router

самописная веб морда для телеком провайдера + биллинг рубящий неплательщиков, написаный для идиотов, автором который перл знает неделю.

по другому без вариантов. нужно чинить, на фре работало «из коробки»

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

diakon2
() автор топика
Ответ на: комментарий от router
[root@perl telnet]# semanage port -l | egrep '(^http_port_t)'

http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

[root@perl telnet]# semanage port -a -t http_port_t -p tcp 23

ValueError: Порт tcp/23 уже определен


[root@perl telnet]# semanage port -d -t telnetd_port_t -p tcp 23

ValueError: Порт tcp/23 определен на уровне политики и не может быть удален

diakon2
() автор топика
Ответ на: комментарий от diakon2

а можно както отключить selinux вообще? или только для апача\телнета?

вопрос безопасности не интересует от слова абсолютно.

diakon2
() автор топика
Ответ на: комментарий от diakon2

вылечелость вот так

setsebool -P httpd_can_network_connect on

всем спасибо кто помог)

diakon2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.