mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
45 lines
1.0 KiB
Perl
Executable File
45 lines
1.0 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# find_ftpaccess.cgi
|
|
# Finds all per-directory options files under the all the document roots
|
|
|
|
require './proftpd-lib.pl';
|
|
&ReadParse();
|
|
@rv = grep { -r $_ } @ftpaccess_files;
|
|
&error_setup($text{'find_err'});
|
|
|
|
if ($in{'from'}) {
|
|
# Look under the given directory
|
|
@dirs = ( $in{'dir'} );
|
|
}
|
|
else {
|
|
# Look in Anonymous sections
|
|
$conf = &get_config();
|
|
$anon = &find_directive("Anonymous", $conf);
|
|
push(@dirs, $anon) if ($anon);
|
|
foreach $v (&find_directive_struct("VirtualHost", $conf)) {
|
|
$anon = &find_directive("Anonymous", $v->{'members'});
|
|
push(@dirs, $anon) if ($anon);
|
|
}
|
|
&error($text{'find_eanon'}) if (!@dirs);
|
|
}
|
|
|
|
foreach $d (@dirs) {
|
|
if ($d =~ /^~(\S+)$/) {
|
|
local @u = getpwnam($1);
|
|
$d = $u[7];
|
|
next if (!$u[7]);
|
|
}
|
|
open(FIND, "find ".quotemeta($d)." -name .ftpaccess -print |");
|
|
while(<FIND>) {
|
|
s/\r|\n//g;
|
|
push(@rv, $_);
|
|
}
|
|
close(FIND);
|
|
}
|
|
|
|
# save results
|
|
$site{'ftpaccess'} = join(' ', &unique(@rv));
|
|
&write_file("$module_config_directory/site", \%site);
|
|
&redirect("ftpaccess.cgi");
|
|
|