summaryrefslogtreecommitdiffstats
path: root/meta/classes/rootfs-postcommands.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-06-22 11:57:17 +0100
committerSteve Sakoman <steve@sakoman.com>2020-07-06 14:33:20 -1000
commit602162c0e33b429b8254de04af72a2aa5111867a (patch)
tree998d8b56d43edc38fa043ab2ec952e5cd8ba94b8 /meta/classes/rootfs-postcommands.bbclass
parent198fe0d64e4bdeda84c0f3e44afcc1d99ca9dbbe (diff)
downloadopenembedded-core-contrib-602162c0e33b429b8254de04af72a2aa5111867a.tar.gz
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 504f1d158bf7c6ad08fbce755021db2b14565231) Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/classes/rootfs-postcommands.bbclass')
-rw-r--r--meta/classes/rootfs-postcommands.bbclass12
1 files changed, 8 insertions, 4 deletions
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 2f171836fa..c43b9a9823 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -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
}