summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall
diff options
context:
space:
mode:
authorkensmith <kensmith@FreeBSD.org>2008-12-16 16:15:19 +0000
committerkensmith <kensmith@FreeBSD.org>2008-12-16 16:15:19 +0000
commitf8bfa764a5c5412fb4a081e3549c326d53c25aea (patch)
treeb477f5efe163fcd5ce141a542e216bf0b07a3a0d /usr.sbin/sysinstall
parent852a86e463c35b7c2249a10881c65659d73f9ecc (diff)
downloadFreeBSD-src-f8bfa764a5c5412fb4a081e3549c326d53c25aea.zip
FreeBSD-src-f8bfa764a5c5412fb4a081e3549c326d53c25aea.tar.gz
Add confirmation of the password that got entered.
PR: 29893 (among others)
Diffstat (limited to 'usr.sbin/sysinstall')
-rw-r--r--usr.sbin/sysinstall/user.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/usr.sbin/sysinstall/user.c b/usr.sbin/sysinstall/user.c
index 8bddc1f..3bba68e 100644
--- a/usr.sbin/sysinstall/user.c
+++ b/usr.sbin/sysinstall/user.c
@@ -63,6 +63,7 @@ static char gname[GNAME_FIELD_LEN],
gmemb[GMEMB_FIELD_LEN],
uname[UT_NAMESIZE + 1],
passwd[PASSWD_FIELD_LEN],
+ confpasswd[PASSWD_FIELD_LEN],
uid[UID_FIELD_LEN],
ugroup[UGROUP_FIELD_LEN],
gecos[GECOS_FIELD_LEN],
@@ -78,7 +79,7 @@ static int okbutton, cancelbutton;
#define USER_DIALOG_Y 0
#define USER_DIALOG_X 8
#define USER_DIALOG_WIDTH COLS - 16
-#define USER_DIALOG_HEIGHT LINES - 2
+#define USER_DIALOG_HEIGHT LINES - 1
/* The group configuration menu. */
static Layout groupLayout[] = {
@@ -108,42 +109,46 @@ static Layout groupLayout[] = {
/* The user configuration menu. */
static Layout userLayout[] = {
#define LAYOUT_UNAME 0
- { 3, 6, UT_NAMESIZE, UT_NAMESIZE + 1,
+ { 2, 6, UT_NAMESIZE, UT_NAMESIZE + 1,
"Login ID:", "The login name of the new user (mandatory)",
uname, STRINGOBJ, NULL },
#define LAYOUT_UID 1
- { 3, 23, 8, UID_FIELD_LEN - 1,
+ { 2, 23, 8, UID_FIELD_LEN - 1,
"UID:", "The numerical ID for this user (leave blank for automatic choice)",
uid, STRINGOBJ, NULL },
#define LAYOUT_UGROUP 2
- { 3, 33, 8, UGROUP_FIELD_LEN - 1,
+ { 2, 33, 8, UGROUP_FIELD_LEN - 1,
"Group:", "The login group name for this user (leave blank for automatic choice)",
ugroup, STRINGOBJ, NULL },
#define LAYOUT_PASSWD 3
- { 3, 43, 15, PASSWD_FIELD_LEN - 1,
+ { 6, 6, 20, PASSWD_FIELD_LEN - 1,
"Password:", "The password for this user (enter this field with care!)",
passwd, NO_ECHO_OBJ(STRINGOBJ), NULL },
-#define LAYOUT_GECOS 4
- { 8, 6, 33, GECOS_FIELD_LEN - 1,
+#define LAYOUT_CONFPASSWD 4
+ { 6, 28, 20, PASSWD_FIELD_LEN - 1,
+ "Confirm Password:", "Confirm what you typed for the password",
+ confpasswd, NO_ECHO_OBJ(STRINGOBJ), NULL },
+#define LAYOUT_GECOS 5
+ { 10, 6, 33, GECOS_FIELD_LEN - 1,
"Full name:", "The user's full name (comment)",
gecos, STRINGOBJ, NULL },
-#define LAYOUT_UMEMB 5
- { 8, 43, 15, UMEMB_FIELD_LEN - 1,
+#define LAYOUT_UMEMB 6
+ { 10, 43, 15, UMEMB_FIELD_LEN - 1,
"Member groups:", "The groups this user belongs to (i.e. gets access rights for)",
umemb, STRINGOBJ, NULL },
-#define LAYOUT_HOMEDIR 6
- { 13, 6, 20, HOMEDIR_FIELD_LEN - 1,
+#define LAYOUT_HOMEDIR 7
+ { 14, 6, 20, HOMEDIR_FIELD_LEN - 1,
"Home directory:", "The user's home directory (leave blank for default)",
homedir, STRINGOBJ, NULL },
-#define LAYOUT_SHELL 7
- { 13, 29, 29, SHELL_FIELD_LEN - 1,
+#define LAYOUT_SHELL 8
+ { 14, 29, 29, SHELL_FIELD_LEN - 1,
"Login shell:", "The user's login shell (leave blank for default)",
shell, STRINGOBJ, NULL },
-#define LAYOUT_U_OKBUTTON 8
+#define LAYOUT_U_OKBUTTON 9
{ 18, 15, 0, 0,
"OK", "Select this if you are happy with these settings",
&okbutton, BUTTONOBJ, NULL },
-#define LAYOUT_U_CANCELBUTTON 9
+#define LAYOUT_U_CANCELBUTTON 10
{ 18, 35, 0, 0,
"CANCEL", "Select this if you wish to cancel this screen",
&cancelbutton, BUTTONOBJ, NULL },
@@ -421,6 +426,10 @@ verifyUserSettings(WINDOW *ds_win)
return 0;
}
}
+ if (strcmp(passwd, confpasswd)) {
+ feepout("Passwords don't match");
+ return 0;
+ }
if ((homedir[0]!=0) && (homedir[0]!='/')) {
feepout("The pathname for home directories must begin with a '/'.");
return 0;
@@ -682,7 +691,7 @@ userAddUser(dialogMenuItem *self)
draw_box(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 3, USER_DIALOG_HEIGHT - 6,
USER_DIALOG_WIDTH - 6, dialog_attr, border_attr);
wattrset(ds_win, dialog_attr);
- mvwaddstr(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 22, " Add a new user ");
+ mvwaddstr(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 24, " Add a new user ");
CLEAR(uname);
CLEAR(uid);
OpenPOWER on IntegriCloud