简单的 cgi 脚本因权限被拒绝错误而失败
Simple cgi script fails with permission denied error
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
这是一个装有 apache 2.4 的 rhel8 系统
我试过将 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
的权限在/home/testdir
和/var/www
中都是755,用户和组都是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.
Dave Mitchell 的评论是正确的。在命令行输入sudo setenforce permissive后,脚本运行正常
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
这是一个装有 apache 2.4 的 rhel8 系统
我试过将 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
的权限在/home/testdir
和/var/www
中都是755,用户和组都是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.
Dave Mitchell 的评论是正确的。在命令行输入sudo setenforce permissive后,脚本运行正常