Skip to content

Instantly share code, notes, and snippets.

@lazerl0rd
Created October 9, 2023 23:01
Show Gist options
  • Save lazerl0rd/65646e818691402c4bcce1b7b83dde55 to your computer and use it in GitHub Desktop.
Save lazerl0rd/65646e818691402c4bcce1b7b83dde55 to your computer and use it in GitHub Desktop.
#! /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