xref: /OK3568_Linux_fs/device/rockchip/common/scripts/post-owner.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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