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/wuftpd/ |
files >> //usr/libexec/webmin/wuftpd/save_anon.cgi |
#!/usr/bin/perl # save_anon.cgi # Save anonymous FTP require './wuftpd-lib.pl'; &error_setup($text{'anon_err'}); &ReadParse(); &lock_file($config{'ftpaccess'}); $conf = &get_ftpaccess(); # save anonymous-root options for($i=0; defined($dir = $in{"dir_$i"}); $i++) { next if (!$dir); -d $dir || &error(&text('anon_edir', $dir)); push(@aroot, { 'name' => 'anonymous-root', 'values' => [ $dir, $in{"class_$i"} ] } ); } &save_directive($conf, 'anonymous-root', \@aroot); #save guest-root options for($i=0; defined($dir = $in{"gdir_$i"}); $i++) { next if (!$dir); -d $dir || &error(&text('anon_edir', $dir)); push(@groot, { 'name' => 'guest-root', 'values' => [ $dir, $in{"uids_$i"} ] } ); } &save_directive($conf, 'guest-root', \@groot); # save autogroup options for($i=0; defined($agroup = $in{"agroup_$i"}); $i++) { next if (!$agroup); defined(getgrnam($agroup)) || &error(&text('anon_egroup', $agroup)); push(@agroup, { 'name' => 'autogroup', 'values' => [ $agroup, split(/\0/, $in{"aclass_$i"}) ] } ); } &save_directive($conf, 'autogroup', \@agroup); # save other options if ($in{'passwd_def'}) { &save_directive($conf, 'passwd-check', [ ]); } else { &save_directive($conf, 'passwd-check', [ { 'name' => 'passwd-check', 'values' => [ $in{'level'}, $in{'action'} ] } ] ); } foreach $a (split(/\s+/, $in{'email'})) { push(@email, { 'name' => 'deny-email', 'values' => [ $a ] } ); } &save_directive($conf, 'deny-email', \@email); &flush_file_lines(); &unlock_file($config{'ftpaccess'}); &webmin_log("anon", undef, undef, \%in); &redirect("");y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`