📄 run.cgi
字号:
#!/usr/local/bin/perl# run.cgi# Run some command with the given parametersrequire './custom-lib.pl';&foreign_require("proc", "proc-lib.pl");&ReadParse();$| = 1;&error_setup($text{'run_err'});@cmds = &list_commands();$cmd = $cmds[$in{'idx'}];&can_run_command($cmd) || &error($text{'run_ecannot'});# substitute parameters into command$str = $cmd->{'cmd'};foreach $a (@{$cmd->{'args'}}) { $n = $a->{'name'}; if ($a->{'type'} == 0 || $a->{'type'} == 5 || $a->{'type'} == 6) { $rv = $in{$n}; } elsif ($a->{'type'} == 1 || $a->{'type'} == 2) { (@u = getpwnam($in{$n})) || &error($text{'run_euser'}); $rv = $a->{'type'} == 1 ? $in{$n} : $u[2]; } elsif ($a->{'type'} == 3 || $a->{'type'} == 4) { (@g = getgrnam($in{$n})) || &error($text{'run_egroup'}); $rv = $a->{'type'} == 3 ? $in{$n} : $g[2]; } elsif ($a->{'type'} == 7) { $rv = $in{$n} ? $a->{'opts'} : ""; } if ($a->{'quote'}) { $rv =~ s/\\/\\\\/g; $rv =~ s/"/\\"/g; $rv = "\"$rv\""; } $str =~ s/\$$n/$rv/g; }# Run and display output$| = 1;&header($text{'run_title'}, "");print "<hr>\n";print "<p>",&text('run_out', "<tt>$str</tt>"),"\n";print "<pre>";@u = getpwnam($cmd->{'user'});$( = $u[3]; $) = "$u[3] $u[3]";$< = $> = $u[2];$got = &foreign_call("proc", "safe_process_exec", $str, $u[2], $u[3], STDOUT, undef, !$cmd->{'raw'});if (!$got) { print "<i>$text{'run_noout'}</i>\n"; }print "</pre>\n";print "<hr>\n";&footer("", $text{'index_return'});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -