diff options
author | Brad Davis <brd@FreeBSD.org> | 2022-08-05 15:10:21 +0000 |
---|---|---|
committer | Brad Davis <brd@FreeBSD.org> | 2022-08-05 15:10:21 +0000 |
commit | 3e1101f29b4ff39a67eb10a5b41b727d8702f0f5 (patch) | |
tree | a861212f44b63ee478c722737a09852de74ab74c | |
parent | a69c0964625f4e20a7d5f22d51e036e13eedbeeb (diff) | |
download | src-3e1101f29b4ff39a67eb10a5b41b727d8702f0f5.tar.gz src-3e1101f29b4ff39a67eb10a5b41b727d8702f0f5.zip |
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
-rw-r--r-- | usr.sbin/bsdinstall/bsdinstall.8 | 9 | ||||
-rwxr-xr-x | usr.sbin/bsdinstall/scripts/rootpass | 12 |
2 files changed, 18 insertions, 3 deletions
diff --git a/usr.sbin/bsdinstall/bsdinstall.8 b/usr.sbin/bsdinstall/bsdinstall.8 index c71097fde7f8..b76cdc04b9c3 100644 --- a/usr.sbin/bsdinstall/bsdinstall.8 +++ b/usr.sbin/bsdinstall/bsdinstall.8 @@ -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: diff --git a/usr.sbin/bsdinstall/scripts/rootpass b/usr.sbin/bsdinstall/scripts/rootpass index 308c60e47a4c..f823c397c384 100755 --- a/usr.sbin/bsdinstall/scripts/rootpass +++ b/usr.sbin/bsdinstall/scripts/rootpass @@ -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 |