From 9c3270b08c8654c6167985a3238ed7e41a2d4985 Mon Sep 17 00:00:00 2001 From: Zihan Chen Date: Thu, 25 Aug 2022 01:15:45 +0000 Subject: [PATCH] dev_container: Fix /scratch permission Correct permission of /scratch to allow crosvmdev to modify its content after UID & GID changed to match host after container first start. TEST=tools/dev_container --stop ; tools/dev_container tools/run_tests --target=vm:aarch64 --build-only Change-Id: I8872c433ae903536750a4623f0d149b2875deba2 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3855471 Commit-Queue: Zihan Chen Reviewed-by: Dennis Kempin Reviewed-by: Daniel Verkamp Tested-by: Zihan Chen --- tools/impl/dev_container/Dockerfile | 2 +- tools/impl/dev_container/setup-user.sh | 6 ++---- tools/impl/dev_container/version | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tools/impl/dev_container/Dockerfile b/tools/impl/dev_container/Dockerfile index 42023f94ca..95eff85036 100644 --- a/tools/impl/dev_container/Dockerfile +++ b/tools/impl/dev_container/Dockerfile @@ -37,7 +37,7 @@ RUN useradd -ms /bin/bash crosvmdev \ # Pass rust envs from rust toolchain image when sudo into new user && echo 'Defaults env_keep += "RUSTUP_HOME CARGO_HOME RUST_VERSION CARGO_TARGET_DIR"' >> /etc/sudoers \ # Allow dependencies and build files to be used and overwritten by user - && chmod -R 777 /scratch /cache + && chown -R crosvmdev:crosvmdev /scratch /cache # Following operations will be run as crosvmdev to ensure correct permission. USER crosvmdev diff --git a/tools/impl/dev_container/setup-user.sh b/tools/impl/dev_container/setup-user.sh index eca19a0384..4652b04506 100644 --- a/tools/impl/dev_container/setup-user.sh +++ b/tools/impl/dev_container/setup-user.sh @@ -3,12 +3,10 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -if [[ $OUTSIDE_GID != $(sudo -u crosvmdev id -g) ]]; then +if [[ $OUTSIDE_GID != $(id -g crosvmdev) || $OUTSIDE_UID != $(id -u crosvmdev) ]]; then groupmod -g "$OUTSIDE_GID" crosvmdev - chgrp -R crosvmdev /home/crosvmdev -fi -if [[ $OUTSIDE_UID != $(sudo -u crosvmdev id -u) ]]; then usermod -u "$OUTSIDE_UID" crosvmdev + chown -R crosvmdev:crosvmdev /scratch fi # Transitional section to fix CI's cache permission diff --git a/tools/impl/dev_container/version b/tools/impl/dev_container/version index 2180f1328d..3e59d5bec7 100644 --- a/tools/impl/dev_container/version +++ b/tools/impl/dev_container/version @@ -1 +1 @@ -r0019 +r0020