Server IP : 195.201.23.43 / Your IP : 3.144.128.235 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/status/ |
Upload File : |
# file-monitor.pl # Check the status of some file sub get_file_status { local @files; if ($_[0]->{'file'} =~ /\*|\?/) { @files = glob($_[0]->{'file'}); } else { @files = ( $_[0]->{'file'} ); } my $allup = 1; my @badsizes; my @badowners; my @badgroups; my @badperms; my @allsizes; foreach my $f (@files) { local @st = stat($f); # Check file size local $size; local $up; if ($_[0]->{'test'} >= 2) { $size = -d $f ? &disk_usage_kb($f)*1024 : $st[7]; } if ($_[0]->{'test'} == 0) { $up = @st ? 1 : 0; } elsif ($_[0]->{'test'} == 1) { $up = @st ? 0 : 1; } elsif ($_[0]->{'test'} == 2) { $up = $size > $_[0]->{'greater'} ? 1 : 0; } elsif ($_[0]->{'test'} == 3) { $up = $size < $_[0]->{'lesser'} ? 1 : 0; } if (!$up) { $allup = 0; push(@badsizes, $f); } if ($_[0]->{'owner'}) { # Check for owner my $u = getpwuid($st[4]); if ($st[4] ne $_[0]->{'owner'} && $u ne $_[0]->{'owner'}) { $allup = 0; push(@badowners, $f); } } if ($_[0]->{'group'}) { # Check for group my $g = getgrgid($st[5]); if ($st[5] ne $_[0]->{'group'} && $g ne $_[0]->{'group'}) { $allup = 0; push(@badgroups, $f); } } if ($_[0]->{'perms'}) { # Check for permissions if (($st[2]&0777) != oct($_[0]->{'perms'})) { $allup = 0; push(@badperms, $f); } } push(@allsizes, $size) if (defined($size)); } # Construct error message my @descs; if (@badsizes) { my $desc = join(" ", @badsizes); if ($_[0]->{'test'} == 2) { $desc = &text('file_esmall', $desc); } elsif ($_[0]->{'test'} == 3) { $desc = &text('file_elarge', $desc); } push(@descs, $desc); } if (@badowners) { push(@descs, &text('file_eowner', join(" ", @badowners))); } if (@badgroups) { push(@descs, &text('file_egroup', join(" ", @badgroups))); } if (@badperms) { push(@descs, &text('file_eperm', join(" ", @badperms))); } my $rv = { 'up' => $allup, 'desc' => join(", ", @descs) }; if (@allsizes == 1) { $rv->{'value'} = $allsizes[0]; $rv->{'nice_value'} = &nice_size($allsizes[0]); } return $rv; } sub show_file_dialog { print &ui_table_row($text{'file_file'}, &ui_textbox("file", $_[0]->{'file'}, 50), 3); print &ui_table_row($text{'file_test'}, &ui_radio("test", int($_[0]->{'test'}), [ [ 0, $text{'file_test_0'}."<br>" ], [ 1, $text{'file_test_1'}."<br>" ], [ 2, $text{'file_test_2'}. &ui_textbox("greater", $_[0]->{'greater'}, 10)." ". $text{'file_bytes'}."<br>" ], [ 3, $text{'file_test_3'}. &ui_textbox("lesser", $_[0]->{'lesser'}, 10)." ". $text{'file_bytes'}."<br>" ] ]), 3); print &ui_table_row($text{'file_owner'}, &ui_opt_textbox("owner", $_[0]->{'owner'}, 20, $text{'file_nocheck'}), 3); print &ui_table_row($text{'file_group'}, &ui_opt_textbox("group", $_[0]->{'group'}, 20, $text{'file_nocheck'}), 3); print &ui_table_row($text{'file_perms'}, &ui_opt_textbox("perms", $_[0]->{'perms'}, 4, $text{'file_nocheck'}), 3); } sub parse_file_dialog { $in{'file'} || &error($text{'file_efile'}); $_[0]->{'file'} = $in{'file'}; $_[0]->{'test'} = $in{'test'}; $in{'greater'} =~ /^\d*$/ && $in{'lesser'} =~ /^\d*$/ || &error($text{'file_esize'}); $_[0]->{'greater'} = $in{'greater'}; $_[0]->{'lesser'} = $in{'lesser'}; $_[0]->{'owner'} = $in{'owner_def'} ? undef : $in{'owner'}; $_[0]->{'group'} = $in{'group_def'} ? undef : $in{'group'}; $_[0]->{'perms'} = $in{'perms_def'} ? undef : $in{'perms'}; }Private