#!/usr/bin/perl -T -I/h/COE/lib -w
use strict;
use Coe;
my $VERSION="1.1.4.1";
if (@ARGV == 0) {
&useage;
}
sub useage { print "Useage: $0 {--username username} {--fullname fullname} ".
"{--uid uid} {--group group} {--password password}" .
"{--shell shell} {--home home} {--scope scope}\n";exit 1; }
my $arg1;
my $chownstr;
my $flag="false";
my $fullname="dummy";
my $gid="dummy";
my $group="dummy";
my $home="dummy";
my $myargs;
my $other_groups="dummy";
my $password="dummy";
my $path;
my $pscope="local";
my $profile="local";
my $scope="local";
my $shell="/bin/csh";
my $uid="dummy";
my $username="dummy";
my @command;
my @p;
while (@ARGV > 0 ){
$arg1=cleanString(shift,1);
if ("$arg1" eq "-h") {
print "HELP\n";
exit;
} elsif ("$arg1" eq "-H") {
print "HELP\n";
exit;
} elsif ("$arg1" eq "-V") {
print "VERSION: $VERSION\n";
exit;
} elsif ("$arg1" eq "--username") {
$username=cleanString(shift,1);
} elsif ("$arg1" eq "--fullname") {
$fullname=cleanString(shift,1);
} elsif ("$arg1" eq "--uid") {
$uid=cleanString(shift,1);
} elsif ("$arg1" eq "--group") {
$group=cleanString(shift,1);
} elsif ("$arg1" eq "--password") {
$password=cleanString(shift,1);
} elsif ("$arg1" eq "--scope") {
$scope=cleanString(shift,1);
} elsif ("$arg1" eq "--shell") {
$shell=cleanString(shift,3);
} elsif ("$arg1" eq "--home") {
$home=cleanString(shift,3);
} elsif ("$arg1" eq "--other_groups") {
# comma delimited, no white space
$other_groups=cleanString(shift,1);
}
}
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# do simple sanity checks
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
if ("$username" eq "dummy" ||
"$uid" eq "dummy" ||
"$group" eq "dummy")
{ &useage; }
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# define some stuff
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
if ("$home" eq "dummy") {
$home=coeFileConv "COE_USER/$scope/$username/Scripts";
}
#if ("$password" eq "dummy") {
# $password="coe4321";
#}
if ("$profile" =~ /:/) {
$profile=$_;
@p=split(":");
$pscope=$p[1];
}
if ("$fullname" ne "dummy") {
@command=("/usr/bin/sudo","/usr/sbin/usermod", "-u", $uid,
"-g", $group, "-d", $home, "-s", $shell, "-c", $fullname);
} else {
@command=("/usr/bin/sudo","/usr/sbin/usermod", "-u", $uid,
"-g", $group, "-d", $home, "-s", $shell, "-c", $username);
}
if ("$other_groups" ne "dummy") {
$command[12]="-G";
$command[13]=$other_groups;
$command[14]=$username;
} else {
$command[12]=$username;
}
#foreach (<@command>) {print "$_ ";}
#print "\n";
coeRun (@command);
#20020429rb: carried over from OS_add_user
# only make directores for users with shells
#if ("$shell" ne "/bin/false") {
#$gid=getgrnam($group);
#$gid=$group;
#$dir_mode=0750;
#mkdir (coeFileConv "COE_USER/$scope/$username", $dir_mode);
#mkdir (coeFileConv "COE_USER/$scope/$username/Scripts", $dir_mode);
#mkdir (coeFileConv "COE_USER/$scope/$username/data", $dir_mode);
$path=coeFileConv "COE_USER/$scope/$username";
$chownstr="$username:$group";
coeRun("/usr/bin/sudo", "/bin/chown", "-R", $chownstr, $path);
#}
#
# set the password
if ("$password" ne "dummy") {
$path=coeFileConv ("COE_COMP/OS/bin/OS_autopasswd");
coeRun($path, $username, $password);
}