php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/webmin/logviewer/ |
files >> //usr/libexec/webmin/logviewer/index.cgi |
#!/usr/bin/perl # index.cgi # Display syslog rules require './logviewer-lib.pl'; &ui_print_header($text{'index_subtitle'}, $text{'index_title'}, "", undef, 1, 1, 0, &help_search_link("systemd-journal journalctl", "man", "doc")); if (!&has_command('journalctl')) { # Not installed &ui_print_endpage(&text('index_econf', "<tt>$config{'syslog_conf'}</tt>", "../config.cgi?$module_name")); } # Display syslog rules my @col1; my @col2; my @col3; if ($access{'syslog'}) { my @systemctl_cmds = &get_systemctl_cmds(); foreach $o (@systemctl_cmds) { local @cols; push(@cols, &text('index_cmd', "<tt>".$o->{'cmd'}."</tt>")); push(@cols, $o->{'desc'}); push(@cols, &ui_link("view_log.cgi?idx=$o->{'id'}&view=1", $text{'index_view'}) ); push(@col1, \@cols); } # System logs from other modules my @foreign_syslogs; if (&foreign_available('syslog') && &foreign_installed('syslog')) { &foreign_require('syslog'); my $conf = &syslog::get_config(); foreach $c (@$conf) { next if ($c->{'tag'}); next if (!&can_edit_log($c)); local @cols; local $name; if ($c->{'file'}) { $name = &text('index_file', "<tt>".&html_escape($c->{'file'})."</tt>"); } if ($c->{'file'} && -f $c->{'file'}) { push(@cols, $name); push(@cols, join(" ; ", map { &html_escape($_) } @{$c->{'sel'}})); push(@cols, &ui_link("view_log.cgi?idx=syslog-".$c->{'index'}."&". "view=1", $text{'index_view'}) ); push(@col1, \@cols); push(@foreign_syslogs, $c->{'file'}); } } } if (&foreign_available('syslog-ng') && &foreign_installed('syslog-ng')) { &foreign_require('syslog-ng'); my $conf = &syslog_ng::get_config(); my @dests = &syslog_ng::find("destination", $conf); foreach my $dest (@dests) { my $file = &syslog_ng::find_value("file", $dest->{'members'}); my ($type, $typeid) = &syslog_ng::nice_destination_type($dest); next if (grep(/^$file$/, @foreign_syslogs)); next if ($file !~ /^\//); if ($typeid == 0 && -f $file) { my @cols; if ($file && -f $file) { next if (!&can_edit_log({'file' => $file})); push(@cols, &text('index_file', "<tt>".&html_escape($file)."</tt>")); push(@cols, " ; $dest->{'value'}"); push(@cols, &ui_link("view_log.cgi?idx=syslog-ng-".$dest->{'index'}."&". "view=1", $text{'index_view'}) ); push(@col1, \@cols); } } } } } # Display logs from other modules if ($config{'others'} && $access{'others'}) { @others = &get_other_module_logs(); if (@others) { foreach $o (@others) { local @cols; if ($o->{'file'}) { push(@cols, &text('index_file',"<tt>$o->{'file'}</tt>")); } else { push(@cols, &text('index_cmd', "<tt>".$o->{'cmd'}."</tt>")); } push(@cols, $o->{'desc'}); push(@cols, &ui_link("view_log.cgi?oidx=$o->{'mindex'}". "&omod=$o->{'mod'}&view=1", $text{'index_view'}) ); push(@col2, \@cols); } } } # Display extra log files foreach $e (&extra_log_files()) { local @cols; push(@cols, &text('index_file', $e->{'file'})); push(@cols, $e->{'desc'}); push(@cols, &ui_link("view_log.cgi?extra=$e->{'file'}&view=1", $text{'index_view'}) ); push(@col3, \@cols); } # Print sorted table with logs files and commands my @acols = (@col1, @col2, @col3); print &ui_columns_start( @acols ? [ $text{'index_to'}, $text{'index_rule'}, "" ] : [ ], 100); if (@acols) { @acols = sort { $a->[2] cmp $b->[2] } @acols; foreach my $col (@acols) { print &ui_columns_row($col); } } else { print &ui_columns_row([$text{'index_elogs'}], [" colspan='3' style='text-align: center'"], 3); } print &ui_columns_end(); print "<p>\n"; if ($access{'any'}) { # Can view any log (under allowed dirs) print &ui_form_start("view_log.cgi"); print &ui_hidden("view", 1),"\n"; print "$text{'index_viewfile'} \n", &ui_textbox("file", undef, 50),"\n", &file_chooser_button("file", 0, 1),"\n", &ui_submit($text{'index_viewok'}),"\n"; print &ui_form_end(); } &ui_print_footer("/", $text{'index'});y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`