From 674709b0ee996cf8f4f3e41c4e699982d936cae2 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 3 Sep 2024 15:02:28 -0400 Subject: [PATCH] Improve ownership further 1. Loop instead of individual entries 2. Create the dirs if they don't exist 3. Use stat to check current user; if it's root, chown --- debian/jellyfin-server.postinst | 39 ++++++++++----------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/debian/jellyfin-server.postinst b/debian/jellyfin-server.postinst index 572ac79..8fc429e 100644 --- a/debian/jellyfin-server.postinst +++ b/debian/jellyfin-server.postinst @@ -38,34 +38,17 @@ case "$1" in if [[ ! -z "$(getent group ${VIDEO_GROUP})" ]]; then usermod -aG ${VIDEO_GROUP} ${JELLYFIN_USER} > /dev/null 2>&1 fi - # ensure $PROGRAMDATA exists - if [[ ! -d $PROGRAMDATA ]]; then - mkdir -p $PROGRAMDATA - chown -R ${JELLYFIN_USER} $PROGRAMDATA - chgrp adm $PROGRAMDATA - chmod 0750 $PROGRAMDATA - fi - # ensure $CONFIGDATA exists - if [[ ! -f $CONFIGDATA/system.xml ]]; then - mkdir -p $CONFIGDATA - chown -R ${JELLYFIN_USER} $CONFIGDATA - chgrp adm $CONFIGDATA - chmod 0750 $CONFIGDATA - fi - # ensure $LOGDATA exists - if [[ ! -d $LOGDATA ]]; then - mkdir -p $LOGDATA - chown -R ${JELLYFIN_USER} $LOGDATA - chgrp adm $LOGDATA - chmod 0750 $LOGDATA - fi - # ensure $CACHEDATA exists - if [[ ! -d $CACHEDATA ]]; then - mkdir -p $CACHEDATA - chown -R ${JELLYFIN_USER} $CACHEDATA - chgrp adm $CACHEDATA - chmod 0750 $CACHEDATA - fi + + # Ensure directories exist and, on initial creation, are chowned to the correct user(s) + for DIRECTORY in $PROGRAMDATA $CONFIGDATA $LOGDATA $CACHEDATA; do + if [[ ! -d $DIRECTORY ]]; then + mkdir -p $DIRECTORY + fi + if [[ $(stat -c '%u' $DIRECTORY) -eq 0 ]]; then + chown -R ${JELLYFIN_USER}:adm $DIRECTORY + chmod 0750 $DIRECTORY + fi + done # Install jellyfin symlink into /usr/bin ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin