Pretty self explanatory…
#!/usr/bin/env bash if [[ $# < 1 ]] ; then cat <<-EOF LXC Toolkit by ASBRA AB lxc-chown is used to shift SUBUID and SUBGID inside LXC container folders. The script uses the current working directory to start from and works recursively. if container is priviged root=0 and you'd like to shift to subuid 165536, the command would be: $0 --dry-run 165536 The other way around, shifting from 165536 back to 0 $0 --dry-run -165536 EOF exit 1 elif [[ $# == 1 ]] ; then export LXC_SHIFT_BY="$1" find -not -type l -exec sh -c 'chown $((${LXC_SHIFT_BY}+$(stat -c "%u" "$1"))):$((${LXC_SHIFT_BY}+$(stat -c "%g" "$1"))) "$1"' _ {} \; elif [[ $# == 2 && $1 == "--dry-run" ]] ; then export LXC_SHIFT_BY="$2" find -not -type l -exec sh -c 'echo "chown $((${LXC_SHIFT_BY}+$(stat -c "%u" "$1"))):$((${LXC_SHIFT_BY}+$(stat -c "%g" "$1"))) $1"' _ {} \; fi