Created
October 9, 2023 23:01
-
-
Save lzlrd/65646e818691402c4bcce1b7b83dde55 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env bash | |
declare -A extraPaths=( \ | |
["certbot"]="/etc/letsencrypt /root/.secrets/certbot/cloudflare.ini" \ | |
) | |
takeOwnership() { | |
local datafsMount="$(stat -c '%n' "/srv/$1" 2> /dev/null)" | |
local mount="$(podman mount "$1")" | |
local volumeMount="$(podman volume mount $1 2> /dev/null)" | |
local rootOwner="$(stat -c '%u' "$mount")" | |
local userOwner="$(cat "$mount/etc/passwd" | grep "$1" | awk -F ":" '{print $3}')" | |
if [[ $userOwner != "" ]]; then | |
local owner="$(("$rootOwner" + "$userOwner"))" | |
else | |
local owner="$rootOwner" | |
fi | |
(set -x; chown -Rfv "$owner":"$owner" "$datafsMount" "$volumeMount" ${extraPaths[$1]}) | |
} | |
for container in `podman ps --all | tail -n +2 | awk '{print $NF}'`; do | |
takeOwnership "$container" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment