mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-06 04:26:59 +02:00
BUG=none TEST=Ran script, from within chroot, with no args(prompts for password), one password arg, and multiple args(prints usage and exits), and each time echo'd the password before it is encrypted. Each time it is correct. From outside chroot, it only prints an error and exits. Change-Id: I9380511e8784e4979e664281c751fe6e6defe7ab Reviewed-on: https://gerrit.chromium.org/gerrit/25397 Tested-by: Isaac Simha <isimha@nvidia.com> Reviewed-by: Brian Harring <ferringb@chromium.org> Commit-Ready: Isaac Simha <isimha@nvidia.com>
39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Script to set the password for the shared user account. Stores the MD5crypt'd
|
|
# password to a file inside chroot, for use by build_image.
|
|
|
|
# Make sure common.sh is here.
|
|
SCRIPT_ROOT=$(dirname $(readlink -f "$0"))
|
|
. "${SCRIPT_ROOT}/common.sh" || { echo "Unable to load common.sh"; exit 1; }
|
|
|
|
assert_inside_chroot
|
|
|
|
# Die on any errors.
|
|
switch_to_strict_mode
|
|
|
|
SHARED_USER_PASSWD_FILE="/etc/shared_user_passwd.txt"
|
|
|
|
# If optional password argument is supplied, set password to that.
|
|
if [[ $# > 1 ]]; then
|
|
echo "Too many arguments."
|
|
echo "usage: $0 [password]"
|
|
exit 1
|
|
elif [[ $# == 1 ]]; then
|
|
PASSWORD=$1
|
|
exec "$0" < <(echo "$PASSWORD")
|
|
else
|
|
# Get password
|
|
read -s -p "Enter password for shared user account: " PASSWORD
|
|
fi
|
|
|
|
CRYPTED_PASSWD="$(echo "$PASSWORD" | openssl passwd -1 -stdin)"
|
|
PASSWORD="gone now"
|
|
|
|
echo "${CRYPTED_PASSWD}" | sudo_clobber "${SHARED_USER_PASSWD_FILE}"
|
|
echo "Password set in ${SHARED_USER_PASSWD_FILE}"
|