From 0c9e88de6c727a219d5ca6a25d34d6e39bffce09 Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Tue, 19 Oct 2010 14:49:39 -0700 Subject: [PATCH] Added a function to update chroot sudoers automatically. This function is now called by enter_chroot.sh. A separate change will call the function from make_chroot Change-Id: I4fc07c413e56db3e5e7617428f20f2ffc02790d7 BUG=chromium-os:7072 TEST=Took root out of sudoers and ran enter_chroot.sh script; saw that it was re-added. Review URL: http://codereview.chromium.org/3909001 --- common.sh | 20 ++++++++++++++++++++ enter_chroot.sh | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/common.sh b/common.sh index 19bd0c2777..b562e0f4d6 100644 --- a/common.sh +++ b/common.sh @@ -460,3 +460,23 @@ print_time_elapsed() { seconds="$(( $elapsed_seconds % 60 ))" echo "Elapsed time: ${minutes}m${seconds}s" } + +# This function is a place to put code to incrementally update the +# chroot so that users don't need to fully re-make it. It should +# be called from scripts that are run _outside_ the chroot. +# +# Please put date information so it's easy to keep track of when +# old hacks can be retired and so that people can detect when a +# hack triggered when it shouldn't have. +# +# ${1} specifies the location of the chroot. +chroot_hacks_from_outside() { + # Give args better names. + local chroot_dir="${1}" + + # Add root as a sudoer if not already done. + if ! sudo grep -q '^root ALL=(ALL) ALL$' "${chroot_dir}/etc/sudoers" ; then + info "Upgrading old chroot (pre 2010-10-19) - adding root to sudoers" + sudo bash -c "echo root ALL=\(ALL\) ALL >> \"${chroot_dir}/etc/sudoers\"" + fi +} diff --git a/enter_chroot.sh b/enter_chroot.sh index c0e45ba2ab..3ca59bf9e7 100755 --- a/enter_chroot.sh +++ b/enter_chroot.sh @@ -254,6 +254,10 @@ then exit 0 fi +# Apply any hacks needed to update the chroot. +chroot_hacks_from_outside "${FLAGS_chroot}" + + # Make sure we unmount before exiting trap teardown_env EXIT setup_env