bsdinstall: allow setting the root password via env variables

Reviewed by:	0mp, allanjude, asiciliano, dteske, pauamma, rpokala, sef
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D35588
This commit is contained in:
Brad Davis 2022-08-05 09:10:21 -06:00
parent a69c096462
commit 3e1101f29b
2 changed files with 18 additions and 3 deletions

View file

@ -343,6 +343,15 @@ target is executed.
If this directory does not already exist, it will be created.
Default:
.Dq Pa $TMPDIR/bsdinstall_boot
.It Ev ROOTPASS_ENC
Encrypted string to set the root password to in the format expected by
.Xr pw 8
.Fl H Ar 0 .
This option is used if both it and
.Ev ROOTPASS_PLAIN
are set.
.It Ev ROOTPASS_PLAIN
Plain text string to set the root password to.
.It Ev ZFSBOOT_POOL_NAME
Name for the pool containing the base system.
Default:

View file

@ -33,7 +33,13 @@ echo "$OSNAME Installer"
echo "========================"
echo
echo "Please select a password for the system management account (root):"
echo "Typed characters will not be visible."
if [ -n "$ROOTPASS_ENC" ]; then
printf '%s\n' "$ROOTPASS_ENC" | pw -R $BSDINSTALL_CHROOT usermod root -H 0
elif [ -n "$ROOTPASS_PLAIN" ]; then
printf '%s\n' "$ROOTPASS_PLAIN" | pw -R $BSDINSTALL_CHROOT usermod root -h 0
else
echo "Please select a password for the system management account (root):"
echo "Typed characters will not be visible."
chroot $BSDINSTALL_CHROOT passwd root 2>&1
chroot $BSDINSTALL_CHROOT passwd root 2>&1
fi