summaryrefslogtreecommitdiffstats
path: root/ftp_wizard/scripts/ProFtpconf.pm
diff options
context:
space:
mode:
Diffstat (limited to 'ftp_wizard/scripts/ProFtpconf.pm')
-rw-r--r--ftp_wizard/scripts/ProFtpconf.pm163
1 files changed, 0 insertions, 163 deletions
diff --git a/ftp_wizard/scripts/ProFtpconf.pm b/ftp_wizard/scripts/ProFtpconf.pm
deleted file mode 100644
index 854245cc..00000000
--- a/ftp_wizard/scripts/ProFtpconf.pm
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/perl
-
-# Drakwizard
-
-# Copyright (C) 2002 MandrakeSoft Arnaud Desmons (adesmons@mandrakesoft.com)
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-package ProFtpconf;
-require "__WIZ_HOME__/common/scripts/IFCFG.pm";
-use MDK::Common;
-use strict;
-require "__WIZ_HOME__/common/scripts/Vareqval.pm";
-
-sub true {
- my ($val) = @_;
-
- $val eq "1" || $val eq "\'1\'" || $val eq "\"1\"" ||
- $val eq "true" || $val eq "\'true\'" || $val eq "\"true\"" and
- return 1;
- 0;
-}
-
-sub check_dir {
- -d $ENV{wiz_dir} and return 10;
- 1;
-}
-
-sub get_dir {
- my $file = "/etc/proftpd.conf";
- die "no ftp configuration file found ! warning." if (!-f $file);
- open(NEW, "< $file") or die "error while opening $file: $!";
-
- while (<NEW>) { # we need 3 elements to consider section as known
- if (m/^\s*<drakwizard>/s...m/^\s*<\/drakwizard>/s ) {
- if (m/^\s*<Anonymous\s*(.*)>/s ) {
- return $1;
- }
- }
- }
- return "";
-}
-
-my $o = IFCFG->new();
-
-sub check {
- $> and return 1;
- $o->is_dhcp() and return 2;
- 0;
-}
-
-sub print_anonymous() {
- print '
-#<drakwizard>
-<Anonymous '.$_[0].'>
- User ftp
- Group ftp
- UserAlias anonymous ftp
- MaxClients 10
- <Limit WRITE>
- DenyAll
- </Limit>
-</Anonymous>
-#</drakwizard>
-';
-}
-
-sub do_it {
- my $wiz_ftp_internal = $ENV{wiz_ftp_external} ? 1 : true $ENV{wiz_ftp_internal};
- my $wiz_ftp_external = true $ENV{wiz_ftp_external};
- my $file = "/etc/proftpd.conf";
- die "no ftp configuration file found ! warning." if (!-f $file);
- MDK::Common::cp_af($file, $file . ".orig");
- open(NEW, "< $file") or die "error while opening $file: $!";
- my $allow = "all";
- if ($wiz_ftp_internal && !$wiz_ftp_external) {
- ($allow) = $o->itf_get("IPADDR") =~ qr/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}$/;
- $allow .= " 127.0.0.1";
- }
- elsif (!$wiz_ftp_external) {
- $allow = "none";
- }
- my $file = "/etc/proftpd.conf";
- open (NEW, "< $file");
- my $exist = 0;
- while (<NEW>) { # we need 3 elements to consider section as known
- if (m/^\s*<Global>/s...m/^\s*<\/Global>/s ) {
- if (m/^\s*<Limit LOGIN>/s...m/^\s*<\/Limit>/s ) {
- if (/^\s*(?!\#)\s*Order .*$/) {
- $exist++;
- }
- if (/^\s*(?!\#)\s*Allow .*$/) {
- $exist++;
- }
- if (/^\s*(?!\#)\s*Deny .*$/) {
- $exist++;
- }
- }
- }
- }
- close (NEW);
- if ($exist < 3) { # Odd parameters are commented if exists to then add a known section
- substInFile {
- if (m/^\s*<Global>/s...m/^\s*<\/Global>/s ) {
- if (m/^\s*<Limit LOGIN>/s...m/^\s*<\/Limit>/s ) {
- s/^\s*(?!\#)\s*Order .*$/\#$&\n/s;
- s/^\s*(?!\#)\s*Allow .*$/\#$&\n/s;
- s/^\s*(?!\#)\s*Deny .*$/\#$&\n/s;
- }
- }
- } $file;
- open (NEW, ">> $file");
- print NEW '
-#<drakwizard>
-<Global>
- <Limit LOGIN>
- Order allow,deny
- Allow from '.$allow.'
- Deny from all
- </Limit>
-</Global>
-#</drakwizard>';
- close NEW;
- }
- else { # the known section (3 parameters ) is replaced with our needs
- substInFile {
- if (m/^\s*<Global>/s...m/^\s*<\/Global>/s ) {
- if (m/^\s*<Limit LOGIN>/s...m/^\s*<\/Limit>/s ) {
- if (/^\s*(?!\#)\s*Order .*$/i) {
- if (!/\s*Order\s*allow,\s*deny\s*$/) {
- s//\#$&\n Order allow,deny\n/;
- }
- }
- if (/^\s*(?!\#)\s*Allow .*$/i) {
- if (!/\s*Allow\s*from\s*$allow\s*$/) {
- s//\#$&\n Allow from $allow/;
- }
- }
- if (/^\s*(?!\#)\s*Deny .*$/i) {
- if (!/\s*Deny\s*from\s*all\s*$/) {
- s//\#$&\n Deny from all\n/;
- }
- }
- }
- }
- } $file;
- }
- system("/etc/rc.d/init.d/proftpd restart");
- 10;
-}
-1;