]> git.cameronkatri.com Git - pw-darwin.git/commitdiff
Yet one cleanup
authorAndrey A. Chernov <ache@FreeBSD.org>
Fri, 30 Dec 1994 12:03:48 +0000 (12:03 +0000)
committerAndrey A. Chernov <ache@FreeBSD.org>
Fri, 30 Dec 1994 12:03:48 +0000 (12:03 +0000)
adduser/Makefile
adduser/adduser.8 [new file with mode: 0644]
adduser/adduser.sh [new file with mode: 0644]

index bd448af18577722c0eb8fb801f40543df49a07bc..da403a336fc094eea5e1036ff1850adc0baaa5cf 100644 (file)
@@ -1,11 +1,7 @@
-# TODO:
-# rename adduser adduser.sh
-# rename adduser.1 adduser.8
-
-MAN1=  adduser.1
+MAN8=   adduser.8
 
 beforeinstall:
        install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
-           ${.CURDIR}/adduser ${DESTDIR}${BINDIR}/adduser
+           ${.CURDIR}/adduser.sh ${DESTDIR}${BINDIR}/adduser
 
 .include <bsd.prog.mk>
diff --git a/adduser/adduser.8 b/adduser/adduser.8
new file mode 100644 (file)
index 0000000..610c3d1
--- /dev/null
@@ -0,0 +1,75 @@
+
+.\"  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.1,v 1.3 1994/12/28 17:27:21 gclarkii Exp $
+
+.Dd December 28, 1994
+.Dt ADDUSER 1
+.Os FreeBSD 
+
+.Sh NAME
+.Nm adduser
+
+.Sh SYNOPSIS
+.Nm
+
+.Sh DESCRIPTION
+.Nm
+is a Perl script for adding users under a BSD system.  It has the ability to
+keep track of the current userid and increment this automaticly.  It can
+also use a default group id.
+.Ss SETUP
+In the normal course of usage there is no setup needed.  If you wish to use
+auto-increment mode, you must do two things.
+
+.Bl -enum -compact  
+.It 
+Change the variable in 
+.Pa /etc/adduser.conf
+to allow for the auto-increment
+.It 
+Change the file 
+.Pa /etc/userids
+to show the current id number.
+.El
+
+To use the default group id, just change the variable in 
+.Pa /etc/adduser.conf 
+to reflect the group that you wish as a default.
+
+.Sh FILES
+.Pa /etc/adduser.conf
+.Pa /etc/userids
+.Pa /usr/share/skel/*
+
+.Sh SEE ALSO
+.Xr adduser 8
+.Xr perl 1
+
+.Sh HISTORY
+The adduser command appeared in FreeBSD 2.0C (12-94).
+
+
+
diff --git a/adduser/adduser.sh b/adduser/adduser.sh
new file mode 100644 (file)
index 0000000..58aac32
--- /dev/null
@@ -0,0 +1,195 @@
+#!/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 $
+#
+
+$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";
+