#!/usr/bin/perl -Tw
-#
-# $Id: svc_acct.import,v 1.10 2000-06-28 12:32:30 ivan Exp $
-#
-# ivan@sisd.com 98-mar-9
-#
-# changed 'password' field to '_password' because PgSQL 6.3 reserves this word
-# bmccane@maxbaud.net 98-Apr-3
-#
-# generalized svcparts (still needs radius import) ivan@sisd.com 98-mar-23
-#
-# radius import, now an interactive script. still needs erpcd import?
-# ivan@sisd.com 98-jun-24
-#
-# arbitrary radius attributes ivan@sisd.com 98-aug-9
-#
-# don't import /var/spool/freeside/conf/shells! ivan@sisd.com 98-aug-13
-#
-# $Log: svc_acct.import,v $
-# Revision 1.10 2000-06-28 12:32:30 ivan
-# allow RADIUS lines with "Auth-Type = Local" too
-#
-# Revision 1.8 2000/02/03 05:16:52 ivan
-# beginning of DNS and Apache support
-#
-# Revision 1.7 1999/07/08 02:32:26 ivan
-# import fix, noticed by Ben Leibig and Joel Griffiths
-#
-# Revision 1.6 1999/07/08 01:49:00 ivan
-# updates to avoid -w warnings from Joel Griffiths <griff@aver-computer.com>
-#
-# Revision 1.5 1999/03/25 08:42:19 ivan
-# import stuff uses Term::Query and spits out (some kinds of) nonsensical input
-#
-# Revision 1.4 1999/03/24 00:43:38 ivan
-# die if no relevant services
-#
-# Revision 1.3 1998/12/10 07:23:16 ivan
-# use FS::Conf, need user (for datasrc)
-#
-# Revision 1.2 1998/10/13 12:07:51 ivan
-# Assigns password from the shadow file for RADIUS password "UNIX"
-#
use strict;
use vars qw(%part_svc);
use Date::Parse;
use Term::Query qw(query);
-use FS::SSH qw(iscp);
+use Net::SCP qw(iscp);
use FS::UID qw(adminsuidsetup datasrc);
use FS::Record qw(qsearch);
use FS::svc_acct;
my $user = shift or die &usage;
adminsuidsetup $user;
+push @FS::svc_acct::shells, qw(/bin/sync /sbin/shuddown /bin/halt); #others?
+
my($spooldir)="/usr/local/etc/freeside/export.". datasrc;
$FS::svc_acct::nossh_hack = 1;
next if /^\s*$/;
next if /^\s*#/;
if ( /^\S/ ) {
- /^(\w+)\s+(Auth-Type\s+=\s+Local,\s+)Password\s+=\s+"([^"]+)"(,\s+Expiration\s+=\s+"([^"]*")\s*)?$/
+ /^(\w+)\s+(Auth-Type\s+=\s+Local,\s+)?Password\s+=\s+"([^"]+)"(,\s+Expiration\s+=\s+"([^"]*")\s*)?$/
or die "1Unexpected line in users.import: $_";
my($password,$expiration);
($username,$password,$expiration)=(lc($1),$3,$5);
while (<SHADOW>) {
chop;
my($username,$password)=split(/:/);
+ #$password =~ s/^\!$/\*/;
+ #$password =~ s/\!+/\*SUSPENDED\* /;
$password{$username}=$password;
}
}
my($svc_acct) = new FS::svc_acct ({
- 'svcpart' => $svcpart,
- 'username' => $username,
- 'password' => $password,
- 'uid' => $uid,
- 'gid' => $gid,
- 'finger' => $finger,
- 'dir' => $dir,
- 'shell' => $shell,
- 'slipip' => $ip{$username},
+ 'svcpart' => $svcpart,
+ 'username' => $username,
+ '_password' => $password,
+ 'uid' => $uid,
+ 'gid' => $gid,
+ 'finger' => $finger,
+ 'dir' => $dir,
+ 'shell' => $shell,
+ 'slipip' => $ip{$username},
%{$allparam{$username}},
});
my($error);
}
my($svc_acct) = new FS::svc_acct ({
- 'svcpart' => $svcpart,
- 'username' => $username,
- 'password' => $password,
- 'slipip' => $ip{$username},
+ 'svcpart' => $svcpart,
+ 'username' => $username,
+ '_password' => $password,
+ 'slipip' => $ip{$username},
%{$allparam{$username}},
});
my($error);