From nobody  Mon May 25 15:21:08 1998
Received: (from nobody@localhost)
          by hub.freebsd.org (8.8.8/8.8.8) id PAA18078;
          Mon, 25 May 1998 15:21:08 -0700 (PDT)
          (envelope-from nobody)
Message-Id: <199805252221.PAA18078@hub.freebsd.org>
Date: Mon, 25 May 1998 15:21:08 -0700 (PDT)
From: uhlar@netlab.sk
To: freebsd-gnats-submit@freebsd.org
Subject: adduser.perl doesn't ask for homedir
X-Send-Pr-Version: www-1.0

>Number:         6754
>Category:       misc
>Synopsis:       adduser.perl doesn't ask for homedir
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    wosch
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 25 15:20:00 PDT 1998
>Closed-Date:    Sun Jun 7 11:40:53 PDT 1998
>Last-Modified:  Sun Jun  7 11:41:22 PDT 1998
>Originator:     Matus Uhlar
>Release:        2.2.6-stable
>Organization:
NETLAB plus slovakia
>Environment:
FreeBSD virtual.netlab.sk 2.2.6-STABLE FreeBSD 2.2.6-STABLE #0: Fri Apr 24 07:22:51 GMT 1998     root@skuska.netlab.sk:/usr/src/sys/compile/GENERIC  i386
>Description:
when i run adduser in quiet mode, it does ask for username, fullname, uid, passwd, groups etc
but it doesn't ask for home directory; it just creates some from default_home/username
but doesn't allow me to change it - the only way is re-editing config,
running with -verbose, or move home directory after creasing user, all suck
adduser should ask for homedir and as default try default_home/username
but it should allow admin to change it
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->wosch 
Responsible-Changed-By: steve 
Responsible-Changed-When: Mon May 25 16:52:08 PDT 1998 
Responsible-Changed-Why:  
adduser.perl was originally written by Wolfram Schneider. 

From: Steve Price <steve@FreeBSD.ORG>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  Subject: Re: misc/6754
Date: Fri, 29 May 1998 10:43:02 -0700 (PDT)

 Here is a patch the Michael S. DeGraw-Bertsch <degrams@rose-hulman.edu>
 sent in that was mistakenly treated as a new PR by GNATs.
 
 *** adduser.perl	Wed May 27 16:25:22 1998
 --- adduser.perl.old	Mon Dec 29 18:27:29 1997
 ***************
 *** 173,179 ****
       return $s;
   }
   
 ! # return default home partition (e.g. "/home")
   # create base directory if nesseccary
   sub home_partition {
       local($home) = @_;
 --- 173,179 ----
       return $s;
   }
   
 ! # return default home partition (f.e. "/home")
   # create base directory if nesseccary
   sub home_partition {
       local($home) = @_;
 ***************
 *** 349,364 ****
       return $shell{$sh};
   }
   
 - # return home (full path) for user
 - # Note that the home path defaults to $home/$name for batch
 - sub new_users_home {
 -     local($name) = @_;
 -     local($userhome);
 - 
 -     $userhome = &confirm_list("Enter home directory (full path)", 1, "$home/$name", "");
 -     return $userhome;
 - }
 - 
   # return free uid and gid
   sub new_users_id {
       local($name) = @_;
 --- 349,354 ----
 ***************
 *** 547,553 ****
   Gid:	  $g_id ($group_login)
   Class:	  $class
   Groups:	  $group_login $new_groups
 ! HOME:     $userhome
   Shell:	  $sh
   EOF
   
 --- 537,543 ----
   Gid:	  $g_id ($group_login)
   Class:	  $class
   Groups:	  $group_login $new_groups
 ! HOME:	  $home/$name
   Shell:	  $sh
   EOF
   
 ***************
 *** 688,701 ****
       # name: Username
       # fullname: Full name
       # sh: shell
 -     # userhome: home path for user
       # u_id: user id
       # g_id: group id
       # class: login class
       # group_login: groupname of g_id
       # new_groups: some other groups
       local($name, $group_login, $fullname, $sh, $u_id, $g_id, $class, $new_groups);
 -     local($userhome);
       local($groupmembers_bak, $cryptpwd);
       local($new_users_ok) = 1;
   
 --- 678,689 ----
 ***************
 *** 707,713 ****
   	$name = &new_users_name;
   	$fullname = &new_users_fullname($name);
   	$sh = &new_users_shell;
 -         $userhome = &new_users_home($name);
   	($u_id, $g_id) = &new_users_id($name);
   	$class = &new_users_class($defaultclass);
   	($group_login, $defaultgroup) =
 --- 695,700 ----
 ***************
 *** 726,739 ****
   	    $cryptpwd = crypt($password, &salt) if $password ne "";
   	    # obscure perl bug
   	    $new_entry = "$name\:" . "$cryptpwd" .
 ! 		"\:$u_id\:$g_id\:$class\:0:0:$fullname:$userhome:$sh";
   	    &append_file($etc_passwd, "$new_entry");
   	    &new_users_pwdmkdb("$new_entry");
   	    &new_users_group_update;
   	    &new_users_passwd_update;  print "Added user ``$name''\n";
   	    &new_users_sendmessage;
   	    &adduser_log("$name:*:$u_id:$g_id($group_login):$fullname");
 ! 	    &home_create($userhome, $name, $group_login);
   	} else {
   	    $new_users_ok = 0;
   	}
 --- 713,726 ----
   	    $cryptpwd = crypt($password, &salt) if $password ne "";
   	    # obscure perl bug
   	    $new_entry = "$name\:" . "$cryptpwd" .
 ! 		"\:$u_id\:$g_id\:$class\:0:0:$fullname:$home/$name:$sh";
   	    &append_file($etc_passwd, "$new_entry");
   	    &new_users_pwdmkdb("$new_entry");
   	    &new_users_group_update;
   	    &new_users_passwd_update;  print "Added user ``$name''\n";
   	    &new_users_sendmessage;
   	    &adduser_log("$name:*:$u_id:$g_id($group_login):$fullname");
 ! 	    &home_create($name, $group_login);
   	} else {
   	    $new_users_ok = 0;
   	}
 ***************
 *** 775,781 ****
       &new_users_passwd_update;  print "Added user ``$name''\n";
       &sendmessage($name, @message_buffer) if $send_message ne "no";
       &adduser_log("$name:*:$u_id:$g_id($group_login):$fullname");
 !     &home_create("$home/$name", $name, $group_login);
   }
   
   # ask for password usage
 --- 762,768 ----
       &new_users_passwd_update;  print "Added user ``$name''\n";
       &sendmessage($name, @message_buffer) if $send_message ne "no";
       &adduser_log("$name:*:$u_id:$g_id($group_login):$fullname");
 !     &home_create($name, $group_login);
   }
   
   # ask for password usage
 ***************
 *** 960,987 ****
   
   # create HOME directory, copy dotfiles from $dotdir to $HOME
   sub home_create {
 !     local($homedir, $name, $group) = @_;
 !     local($rootdir);
   
       if (-e "$homedir") {
   	warn "HOME Directory ``$homedir'' already exist\a\n";
   	return 0;
       }
   
 -     # if the home directory prefix doesn't exist, create it
 -     # First, split the directory into a list; then remove the user's dir
 -     @dir = split('/', $homedir); pop(dir);
 -     # Put back together & strip to get directory prefix
 -     $rootdir = &stripdir(join('/', @dir));
 - 
 -     if (!&mkdirhier("$rootdir")) {
 - 	    # warn already displayed
 - 	    return 0;
 -     }
 - 
       if ($dotdir eq 'no') {
 ! 	if (!mkdir("$homedir", 0755)) {
 ! 	    warn "$dir: $!\n"; return 0;
   	}
   	system 'chown', "$name:$group", $homedir;
   	return !$?;
 --- 947,963 ----
   
   # create HOME directory, copy dotfiles from $dotdir to $HOME
   sub home_create {
 !     local($name, $group) = @_;
 !     local($homedir) = "$home/$name";
   
       if (-e "$homedir") {
   	warn "HOME Directory ``$homedir'' already exist\a\n";
   	return 0;
       }
   
       if ($dotdir eq 'no') {
 ! 	if (!mkdir("$homedir",0755)) {
 ! 	    warn "mkdir $homedir: $!\n"; return 0;
   	}
   	system 'chown', "$name:$group", $homedir;
   	return !$?;
 ***************
 *** 1016,1021 ****
 --- 992,998 ----
       $dir = &stripdir($dir);
       local($user_partition) = "/usr";
       local($dirname) = &dirname($dir);
 + 
   
       -e $dirname || &mkdirhier($dirname);
State-Changed-From-To: open->closed 
State-Changed-By: wosch 
State-Changed-When: Sun Jun 7 11:40:53 PDT 1998 
State-Changed-Why:  
Fixed in rev 1.40 of src/usr.sbin/adduser/adduser.perl 
Thanks! 
>Unformatted:
