Простой скрипт cgi завершается с ошибкой отказа в разрешении - PullRequest
1 голос
/ 09 июля 2019

Сценарий Perl CGI завершается неудачно с

Can't locate /home/testdir/first.pl:  /home/testdir/first.pl:  
Permission denied at /var/www/cgi-bin/first.cgi line 2.

и

End of script output before headers: first.cgi  in /etc/httpd/logs/error_log

Это система rhel8 с apache 2.4

Я пытался переместить first.pl вразличные местоположения и изменение first.cgi, чтобы указать на first.pl.first.cgi выполняется, если я помещаю first.pl в /var/www, но не /home/testdir, /var или другие каталоги

В httpd.conf, я устанавливаю разрешения для /home/testdir/ так же, как /var/www, показанный ниже, и перезапуск apache

<Directory "/home/testdir">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

Из-за разочарования я изменил разрешения для /var/www на Require all denied и перезапустил apache.first.cgi все еще успешно запускается first.pl, когда я указал его на /var/www с разрешениями, измененными на Require all denied.

Я также отключаю suexec и получаю те же ошибки при указании first.cgi на /home/testdir

Разрешения для first.pl составляют 755 в /home/testdir, а также /var/www, а пользователь и группа являются root.

Разрешения для home, testdir, var и www - все 755, а все пользователи и группы - root

first.cgi :

#!/usr/bin/perl
require '/home/testdir/first.pl';
test();

first.pl :

#!/usr/bin/perl
sub test{
    print "Content-type: text/html\n\n";
    print "Hello, World.";
}
first;

Скрипт должен отображать «Hello, World».на веб-странице.Вместо этого он отображает:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

1 Ответ

1 голос
/ 15 июля 2019

Комментарий Дэйва Митчелла верен.После ввода sudo setenforce permissive в командной строке скрипт запускается, как и ожидалось.

...