1*4882a593Smuzhiyun#!/bin/bash -e 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunsource "${POST_HELPER:-$(dirname "$(realpath "$0")")/../post-hooks/post-helper}" 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun# buildroot would fixup owner in its fakeroot script 6*4882a593Smuzhiyunif grep -q "^ID=buildroot$" "$TARGET_DIR/etc/os-release"; then 7*4882a593Smuzhiyun exit 0 8*4882a593Smuzhiyunfi 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunecho "Fixing up owner for $TARGET_DIR..." 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunID=$(stat --format %u "$SDK_DIR") 13*4882a593Smuzhiyunif [ "$ID" -ne 0 ]; then 14*4882a593Smuzhiyun NAME=$(grep -E "^[^:]*:x:$ID:" /etc/passwd | cut -d':' -f1) 15*4882a593Smuzhiyun echo "Fixing up uid=$ID($NAME) to 0(root)..." 16*4882a593Smuzhiyun find . -user $ID -exec chown -h 0:0 {} \; 17*4882a593Smuzhiyunfi 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunif [ -d home ]; then 20*4882a593Smuzhiyun for u in $(ls home/); do 21*4882a593Smuzhiyun ID=$(grep "^$u:" etc/passwd | cut -d':' -f3 || true) 22*4882a593Smuzhiyun [ "$ID" ] || continue 23*4882a593Smuzhiyun echo "Fixing up /home/$u for uid=$ID($u)..." 24*4882a593Smuzhiyun chown -h -R $ID:$ID home/$u 25*4882a593Smuzhiyun done 26*4882a593Smuzhiyunfi 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunID=$(stat --format %u "$RK_OUTDIR") 29*4882a593Smuzhiyunif [ "$(id -u)" -eq 0 -a "$ID" -ne 0 ]; then 30*4882a593Smuzhiyun echo "Fixing up owner for $RK_OUTDIR..." 31*4882a593Smuzhiyun find "$RK_OUTDIR" -user 0 -exec chown -h $ID:$ID {} \; 32*4882a593Smuzhiyunfi 33