adduser: Fix confusion between uclass and _class.

This caused adduser to produce an invalid `pw(8)` command line.  Due to
bugs in `pw(8)`, the command line was silently accepted and led to the
user being created, but locked out and with no home directory.

Also fix the default value for the “Another user?” prompt.

Fixes:		170d088290
MFC after:	3 days
Reviewed by:	karels, allanjude
Differential Revision:	https://reviews.freebsd.org/D45098
This commit is contained in:
Dag-Erling Smørgrav 2024-05-06 18:18:47 +02:00
parent c86119328e
commit 46c4e86ebf

View File

@ -194,7 +194,7 @@ save_config() {
#
add_user() {
local _uid _name _comment _gecos _home _group _grouplist _shell _class
local _dotdir _expire _pwexpire _passwd _upasswd _passwdmethod
local _dotdir _expire _pwexpire _passwd _upasswd _passwdmethod _pwcmd
# Is this a configuration run? If so, don't modify user database.
#
@ -519,7 +519,7 @@ get_uid() {
# Reads login class of account. Can be used in interactive or batch mode.
#
get_class() {
local _input _uclass
local _input _class
uclass="$defaultclass"
_class=${uclass:-"default"}
@ -740,7 +740,6 @@ input_interactive() {
local _logingroup_ok="no"
local _groups_ok="no"
local _all_ok="yes"
local _another_user="no"
case $passwdtype in
none)
_emptypass="yes"
@ -1129,6 +1128,7 @@ if [ -n "$fflag" ]; then
else
input_interactive
while : ; do
_another_user="no"
if [ -z "$configflag" ]; then
echo -n "Add another user? (yes/no) [$_another_user]: "
else