head	1.5;
access;
symbols
	R_1_0:1.1.1.1
	SGC:1.1.1;
locks; strict;
comment	@# @;


1.5
date	95.12.30.18.58.51;	author peter;	state dead;
branches;
next	1.4;

1.4
date	94.12.28.17.27.21;	author gclarkii;	state Exp;
branches;
next	1.3;

1.3
date	94.12.28.13.49.55;	author ache;	state Exp;
branches;
next	1.2;

1.2
date	94.12.28.07.11.28;	author gclarkii;	state Exp;
branches;
next	1.1;

1.1
date	94.12.28.06.55.41;	author gclarkii;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	94.12.28.06.55.42;	author gclarkii;	state Exp;
branches;
next	;


desc
@@


1.5
log
@recording cvs-1.6 file death
@
text
@#!/usr/bin/perl



#  Copyright (c) 1994 GB Data Systems
#  All rights reserved.
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. The name of the Author may not be used to endorse or promote products 
#     derived from this software without specific prior written permission.
#  THIS SOFTWARE IS PROVIDED BY GB DATA AND CONTRIBUTORS ``AS IS'' AND
#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED.  IN NO EVENT SHALL GB DATA OR CONTRIBUTORS BE LIABLE
#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
#  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF    
#  SUCH DAMAGE.

#
# $Id: adduser,v 1.4 1994/12/28 17:27:21 gclarkii Exp peter $
#

$configfile = "\/etc\/adduser.conf";

if (-f $configfile) {
 open (CONFIG, "$configfile");
  while (<CONFIG>) {
    eval "$_";
  }
}

open (WHOAMI, "whoami|");

while (<WHOAMI>) {
$whoami = $_;
}
chop $whoami;

if ($whoami ne "root") {
system "clear";
print "\n\nYou must be root to add an user\n\n";
close WHOAMI;
exit;
}
close WHOAMI;

# Start getting information and print a banner

print "                                Adduser\n";
print "             A system utility for adding users with defaults\n";
print "\n\n";

#
# User ID
#


print "Please enter the login name of the user: ";
chop ($userlogin = <STDIN>);


sub subuid {
$userid = "";
print "Please enter the user id or hit enter for the next id: ";
chop ($userid = <STDIN>);
}

while (!$userid) {
&subuid;
if (!$userid) {
  if ($useautoids) { 
     open (USERID, "+<$userids");
     chop ($xxuserid = <USERID>);
     $userid = $xxuserid + 1;
     close USERID;
     open (USERID, "+>$userids");
     print (USERID "$userid\n");
     close USERID;
   } else { &subuid; }
}
}

#
# Group ID
#

sub groupids {
print "Please enter the group id or hit enter for the default id: ";
chop ($groupid = <STDIN>);
}

&groupids;

while (!$groupid) {
  if ($defgroupid) {
    if (!$groupid) {
     $groupid = "$defgroupid";
    } else { &groupids; } 
  } else { &groupids; }
}

#
#  User name
#

print "Please enter the user's name: ";
chop ($username = <STDIN>);

#
# Home directory
#

print "Please enter the users home directory or hit enter for default: ";
chop ($userdir = <STDIN>);

if (!$userdir) {
	$userdir = "$defusrdir\/$userlogin";
	print "$userdir\n";
}

#
# Login Shell
#

print "Please enter the users login shell or hit enter for default: ";
chop ($usershell = <STDIN>);

if (!$usershell) {
	$usershell = "$userdefshell";
	print "$usershell\n";
}

#
# Create password file entry
#

print "Opening and locking passwd file in blocking mode.\n";
open (PASS, '>>/etc/master.passwd');
flock (PASS, 2) || die "Can't lock passwd file, must be in use!!\n";
print (PASS "$userlogin::$userid:$groupid::0:0:$username,,,:$userdir:$usershell\n");
print "Unlocking and closing password file\n";
flock (PASS,8);
close PASS;
print "Re-indexing password databases\n";
system 'pwd_mkdb -p /etc/master.passwd';
system "passwd $userlogin";

#
# Create user directory
#
print "Creating user directory\n";
if (! -e $defusrdir) {
   system "mkdir -p $defusrdir\/$userdir"; 
} else {
   system "mkdir $userdir";
}


print "Copying user shell files\n";
system "cp $skel_location\/dot.login $userdir\/\.login";
system "cp $skel_location\/dot.profile $userdir\/\.profile";

if ($usershell eq "\/bin\/csh" || $usershell eq "\/usr\/local\/bin\/tcsh")
   {
   system "cp $skel_location\/dot.cshrc $userdir\/.cshrc";
   }
system  "chmod -R 664 $userdir";
system  "chown -R $userid.$groupid $userdir";



#
# Print out information used in creation of this account
#
print "\n\n";
print "Information used to create this account follows.\n";
print "\n";
print "Login Name:      $userlogin\n";
print "UserId:          $userid\n";
print "GroupId:         $groupid\n";
print "UserName:        $username\n";
print "HomeDir:         $userdir\n";
print "Shell:           $usershell\n";
print "\nDONE\n\n";

@


1.4
log
@Changed my copyright back. Too many problems with new one.
@
text
@d30 1
a30 1
# $Id: adduser,v 1.3 1994/12/28 13:49:55 ache Exp $
@


1.3
log
@Fix configfile path
@
text
@d3 3
a5 1
#  Copyright (c) 1994 BSD Journal Publications 
d30 1
a30 1
# $Id: adduser,v 1.2 1994/12/28 07:11:28 gclarkii Exp $
@


1.2
log
@Add Id strings
@
text
@d28 1
a28 1
# $Id:$
d31 1
a31 2
#$configfile = "\/etc\/adduser.conf";
$configfile = "\.\/adduser.conf";
@


1.1
log
@Initial revision
@
text
@d27 4
@


1.1.1.1
log
@Adding my adduser command.  I only have to add a makefile for it to
be compleate.

@
text
@@
