setup-buildchroot: fix copying passwd and group entries
PATCH 1/1 setup-buildchroot: fix copying passwd and group entries
From: Eric Biggers <[email protected]>
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.
--- setup-buildchroot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
setup-buildchroot +2 -2
@@ -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 }
Signature · 1 line
2.14.1.581.gf28d330327-goog
Quoted 8 lines · Eric Biggers
From: Eric Biggers <[email protected]>
create_chroot()is now supposed to add $CHROOT_USER to/etc/passwdin 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.
Quoted 4 lines
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.
Ted, can you apply this patch? Thanks!
Eric
Quoted 9 lines · Eric Biggers
Quoted 8 lines · Eric Biggers
From: Eric Biggers <[email protected]>
create_chroot()is now supposed to add $CHROOT_USER to/etc/passwdin 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.
Quoted 6 lines
Quoted 4 lines
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.
Ted, can you apply this patch? Thanks!
Oops, missed this earlier; thanks for the ping. I've applied it.
- Ted