Server IP : 195.201.23.43 / Your IP : 3.15.236.40 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/acl/ |
Upload File : |
#!/usr/bin/perl # list_sessions.cgi # Display current login sessions use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './acl-lib.pl'; our (%in, %text, %config, %access, %sessiondb); $access{'sessions'} || &error($text{'sessions_ecannot'}); &ui_print_header(undef, $text{'sessions_title'}, ""); &ReadParse(); my %miniserv; &get_miniserv_config(\%miniserv); &open_session_db(\%miniserv); my $time_now = time(); my %hasuser; foreach my $u (&list_users()) { $hasuser{$u->{'name'}}++; } my $haslog = &foreign_available("webminlog"); print &ui_columns_start([ $text{'sessions_id'}, $text{'sessions_state'}, $text{'sessions_user'}, $text{'sessions_host'}, $text{'sessions_login'}, $text{'sessions_actions'}, ], 100); foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a}); my @b = split(/\s+/, $sessiondb{$b}); $b[1] <=> $a[1] } (grep { $sessiondb{$_} } keys %sessiondb)) { next if ($k =~ /^1111111/); my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k}); next if ($user =~ /^\!/ && !$in{'logouts'}); next if ($miniserv{'logouttime'} && $time_now - $ltime > $miniserv{'logouttime'}*60); my @cols; my $candel = 0; if ($k eq $main::session_id || $k eq &hash_session_id($main::session_id)) { # Cannot self-terminate push(@cols, "<b><tt>$k</tt></b>"); push(@cols, $text{'sessions_this'}); } elsif ($user =~ s/^\!//) { # Already logged out push(@cols, "<tt>$k</tt>"); push(@cols, $text{'sessions_out'}); } else { push(@cols, "<tt>$k</tt>"); push(@cols, $text{'sessions_in'}); $candel = 1; } if ($hasuser{$user}) { push(@cols, ui_link("edit_user.cgi?user=$user", $user)); } elsif ($miniserv{'unixauth'}) { push(@cols, "$user (" . ui_link("edit_user.cgi?user=$miniserv{'unixauth'}", $miniserv{'unixauth'}) . ")"); } else { push(@cols, $user); } push(@cols, $lip); push(@cols, &make_date($ltime)); my @links; if ($haslog) { push(@links, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'})); } if ($candel) { push(@links, ui_link("delete_session.cgi?id=$k", $text{'sessions_kill'})); } push(@cols, ui_links_row(\@links)); print &ui_columns_row(\@cols); } print &ui_columns_end(); if (!$in{'logouts'}) { print &ui_link("list_sessions.cgi?logouts=1", $text{'sessions_logouts'}),"<p>\n"; } &ui_print_footer("", $text{'index_return'});Private