[xfstests-bld PATCH] setup-buildchroot: fix copying passwd and group entries

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



From: Eric Biggers <ebiggers@xxxxxxxxxx>

create_chroot() is now supposed to add $CHROOT_USER to /etc/passwd in
the chroot.  However, due to a bad grep pattern, it would add multiple
entries if $CHROOT_USER happened to be a suffix of another username.
Also the passwd record is not guaranteed to actually be in the file
/etc/passwd.  Fix it by using 'getent passwd $CHROOT_USER' instead.

A similar problem existed for the group entry, but also the
$CHROOT_USER's primary group is not guaranteed to have the same name as
the user.  Fix that by using 'id -g' to look up the primary group.

Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
---
 setup-buildchroot | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/setup-buildchroot b/setup-buildchroot
index 2340eb5..992a87c 100755
--- a/setup-buildchroot
+++ b/setup-buildchroot
@@ -524,8 +524,8 @@ EOF
 	chmod 1777 "$CHROOT_DIR/run/shm"
     fi
     if [ -n "$CHROOT_USER" ]; then
-	grep "$CHROOT_USER": /etc/passwd >> "$CHROOT_DIR/etc/passwd"
-	grep "$CHROOT_USER": /etc/group >> "$CHROOT_DIR/etc/group"
+	getent passwd "$CHROOT_USER" >> "$CHROOT_DIR/etc/passwd"
+	getent group "$(id -g "$CHROOT_USER")" >> "$CHROOT_DIR/etc/group"
 	run_in_chroot "adduser $CHROOT_USER sudo"
     fi
 }
-- 
2.14.1.581.gf28d330327-goog

--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux