像Skip所说,但不要以root身份运行CGI.相反,让CGI调用sudo.您可以授予您的Web服务器/etc/init.d/tomcat restart仅在sudoers文件中运行的权限.
我实际上是在做这件事; CGI的相关部分如下所示:
#!/usr/bin/perl
use CGI;
use IPC::Run3;
my $CGI = new CGI;
my $output;
if (defined $CGI->param('go') && 'restart' eq $CGI->param('go')) {
    run3 [ qw(sudo /etc/init.d/tomcat5.5 restart) ], \undef, \$output, \$output;
}
print <<EOF
Content-type: text/html
Blah, blah, blah, HTML form, displays $output at some point.
EOF
这是/ etc/sudoers的示例行(当然使用visudo进行编辑):
ALL     ALL=(root) NOPASSWD: /etc/init.d/tomcat5.5 restart
这允许每个人重启tomcat.只有你愿意,你才能将它限制在Apache.
| 归档时间: | 
 | 
| 查看次数: | 5188 次 | 
| 最近记录: |