rootfs-postcommands: Improve/fix rootfs_check_host_user_contaminated

Currently if the find command finds /home it stops checking the other
files. Tweak the find expression to fix this.

Also, from Alex Kiernan <alex.kiernan@gmail.com>, generate output for
each contaminated path so it's visible in the main log file.

When matches are found, dump the data from the group and passwd files
so useful debugging can be done based on the results.

(From OE-Core rev: 504f1d158bf7c6ad08fbce755021db2b14565231)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-06-22 11:57:17 +01:00
parent 893db513d7
commit 4a2370583b

View File

@@ -308,12 +308,16 @@ rootfs_check_host_user_contaminated () {
HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)"
HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)"
find "${IMAGE_ROOTFS}" -wholename "${IMAGE_ROOTFS}/home" -prune \
-user "$HOST_USER_UID" -o -group "$HOST_USER_GID" >"$contaminated"
find "${IMAGE_ROOTFS}" -path "${IMAGE_ROOTFS}/home" -prune -o \
-user "$HOST_USER_UID" -print -o -group "$HOST_USER_GID" -print >"$contaminated"
sed -e "s,${IMAGE_ROOTFS},," $contaminated | while read line; do
bbwarn "Path in the rootfs is owned by the same user or group as the user running bitbake:" $line `ls -lan ${IMAGE_ROOTFS}/$line`
done
if [ -s "$contaminated" ]; then
echo "WARNING: Paths in the rootfs are owned by the same user or group as the user running bitbake. See the logfile for the specific paths."
cat "$contaminated" | sed "s,^, ,"
bbwarn "/etc/passwd:" `cat ${IMAGE_ROOTFS}/etc/passwd`
bbwarn "/etc/group:" `cat ${IMAGE_ROOTFS}/etc/group`
fi
}