Do not complain about non existing shell "/nonexistent"

Smarter error check if a uid is already in use.

Submitted by: "Eugene Radchenko" <genie@qsar.chem.msu.su>
This commit is contained in:
Wolfram Schneider 1997-09-20 19:59:54 +00:00
parent 163f94979e
commit 142123c17e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=29645

View File

@ -24,7 +24,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $Id: adduser.perl,v 1.35 1997/08/26 22:47:51 wosch Exp $
# $Id: adduser.perl,v 1.36 1997/09/20 18:26:22 wosch Exp $
# read variables
@ -249,7 +249,7 @@ sub passwd_read {
if ($verbose && $sh &&
!$shell{&basename($sh)} &&
$p_username !~ /^(news|xten|bin|nobody|uucp)$/ &&
$sh !~ /\/(pppd|sliplogin|nologin)$/);
$sh !~ /\/(pppd|sliplogin|nologin|nonexistent)$/);
$uid{$p_uid} = $p_username;
$pwgid{$p_gid} = $p_username;
}
@ -369,12 +369,15 @@ sub new_users_id {
! $uid{$u_id_tmp};
if ($uid{$u_id_tmp}) {
warn "Uid ``$u_id_tmp'' in use!\a\n";
$uid_start = $u_id_tmp;
($u_id, $g_id) = &next_id($name);
next;
} else {
warn "Wrong uid.\a\n";
}
}
# use calculated uid
return ($u_id_tmp, $g_id) if $u_id_tmp eq $u_id;
# return ($u_id_tmp, $g_id) if $u_id_tmp eq $u_id;
# recalculate gid
$uid_start = $u_id_tmp;
return &next_id($name);