From 00daad436c14a8d3f6799e7d580ed6b3374efd98 Mon Sep 17 00:00:00 2001 From: Oliver Grawert Date: Wed, 29 Oct 2014 09:54:52 +0100 Subject: [PATCH] adjust /etc/{passwd|shadow|group|gshadow} handling in ubuntu-touch for more info so the log gets all needed data for necessary changes at once --- debian/changelog | 8 +++++++ .../hooks/99zz-check-uid-gid.chroot | 23 +++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6b3a64dd..63d920dc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +livecd-rootfs (2.258) UNRELEASED; urgency=medium + + * collect changes to /etc/{passwd|shadow|group|gshadow} in the error output + in case they got updated on ubuntu-touch. Give a proper hint what to + change to make the error go away on the next run. + + -- Oliver Grawert Wed, 29 Oct 2014 09:49:56 +0100 + livecd-rootfs (2.257) utopic; urgency=medium * Drop the click packages moved in 2.255 from the rootfs, leaving them diff --git a/live-build/ubuntu-touch/hooks/99zz-check-uid-gid.chroot b/live-build/ubuntu-touch/hooks/99zz-check-uid-gid.chroot index 54b03a55..a112729f 100755 --- a/live-build/ubuntu-touch/hooks/99zz-check-uid-gid.chroot +++ b/live-build/ubuntu-touch/hooks/99zz-check-uid-gid.chroot @@ -1,5 +1,7 @@ #!/bin/sh -eu +ERRCNT="" + passwd_hash=$(set -- $(md5sum /etc/passwd) && echo $1) shadow_hash=$(set -- $(cat /etc/shadow | sed "s/:.*:0:99999:/:0:99999:/g" | md5sum) && echo $1) group_length=$(cat /etc/group | wc -l) @@ -12,26 +14,39 @@ gshadow_orig_length=$(cat /etc/gshadow.orig | wc -l) if [ "$passwd_hash" != "$passwd_orig_hash" ]; then echo "/etc/passwd has changed during setup." >&2 + echo "The new /etc/passwd md5sum is: $passwd_hash" >&2 diff -Nrup /etc/passwd.orig /etc/passwd >&2 - exit 1 + ERRCNT=1 fi if [ "$shadow_hash" != "$shadow_orig_hash" ]; then echo "/etc/shadow has changed during setup." >&2 + echo "The new /etc/shadow md5sum is: $shadow_hash" >&2 diff -Nrup /etc/shadow.orig /etc/shadow >&2 - exit 1 + ERRCNT=1 fi if [ "$group_length" != "$group_orig_length" ]; then echo "/etc/group has changed during setup." >&2 diff -Nrup /etc/group.orig /etc/group >&2 - exit 1 + ERRCNT=1 fi if [ "$gshadow_length" != "$gshadow_orig_length" ]; then echo "/etc/gshadow has changed during setup." >&2 diff -Nrup /etc/gshadow.orig /etc/gshadow >&2 - exit 1 + ERRCNT=1 +fi + +if [ -n "$ERRCNT" ]; then + echo "There were changes to the password database," + echo "please adjust the values in the livecd-rootfs source in the file:" + echo "live-build/ubuntu-touch/hooks/00-uid-gid-fix.chroot_early" + echo + echo "Please check also if a maintainer script of the package" + echo "that added these entries perhaps crated a home directory and," + echo "if needed, add code for creation of it to the above hook" + exit 1 fi rm /etc/passwd.orig /etc/shadow.orig /etc/group.orig /etc/gshadow.orig