--- a/conf/post-install +++ b/conf/post-install @@ -566,15 +566,16 @@ test -n "$create" && { then set_permission=1 fi + test -n "$recursive" && nonrecursive="" || nonrecursive="-maxdepth 0" test -n "$set_permission" && { - chown $recursive $owner $path || exit 1 - test -z "$group" || chgrp $recursive $group $path || exit 1 + find $path $nonrecursive ! -user $owner -exec chown $owner "{}" ";" || exit 1 + test -z "$group" || find $path $nonrecursive ! -group $group -exec chgrp $group "{}" ";" || exit 1 # Don't "chmod -R"; queue file status is encoded in mode bits. if [ "$type" = "d" -a -n "$recursive" ] then - find $path -type d -exec chmod $mode "{}" ";" + find $path -type d -a ! -perm $mode -exec chmod $mode "{}" ";" else - chmod $mode $path + find $path $nonrecursive ! -perm $mode -exec chmod $mode "{}" ";" fi || exit 1 } done