From 2ce4be8c285d64ef73bc2455875dbe739476fce6 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 26 Mar 2019 11:58:04 -0700 Subject: [PATCH] adding first version of boilerplate code we can use for chowning --- root/etc/cont-init.d/50-config | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/50-config b/root/etc/cont-init.d/50-config index 5ec1509..27433ad 100644 --- a/root/etc/cont-init.d/50-config +++ b/root/etc/cont-init.d/50-config @@ -39,8 +39,28 @@ done # set queue driver to database sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env +# function to randomly sample 50 files for their owner and only chown if not abc +chowner () { +files=(${1}/*) +for i in {1..50}; do + user=$(stat -c '%U' $(printf "%s\n" "${files[RANDOM % ${#files[@]}]}")) + if [ "${user}" != "abc" ]; then + chown -R abc:abc ${1} + break + fi +done +} + # permissions echo "Setting permissions" -chown -R abc:abc \ - /config \ - /var/www/localhost/heimdall +abc_dirs=( \ +/config \ +/var/www/localhost/heimdall \ +) +for i in "${abc_dirs[@]}"; do + if [ "$(ls -A ${i})" ]; then + chowner ${i} + else + chown -R abc:abc ${i} + fi +done