installer: Allow special characters in passwords
authorAaron LI <aly@aaronly.me>
Sun, 10 May 2020 02:53:20 +0000 (10:53 +0800)
committerAaron LI <aly@aaronly.me>
Mon, 11 May 2020 14:38:59 +0000 (22:38 +0800)
commitdf29799be511167585aaaa3250904e87e4b54c4c
treebb77915799114c2806476b05902cc28b18eb0b47
parentf0557178fb97e1a891ad49667414d4bbda87c574
installer: Allow special characters in passwords

Store the password in an environment variable and pass it to the pw(8)
command.  This way of passing passwords allows special characters in the
password.  Actually, adduser(8) uses the same method to deal with the
password.  So this closes the old bug #3027.

In addition, this prevents the plaintext password from appearing on the
command line or in the installation log file.  Although the installer
will print every executed command to the install.log (located at
'/var/log/install.log' with mode 0600 though), the root password setting
and new user creation steps belong to the 'configuration' stage rather
than the 'installation', so currently the plaintext passwords won't go
to the install.log.

Credit to pikrzyszt (Krzysztof Piecuch) for submitting the initial patch
in bug #3027.
usr.sbin/installer/dfuibe_installer/fn_configure.c