From ee6bd8cec4db18c92108d7237a0f3800f92c9dd6 Mon Sep 17 00:00:00 2001 From: Bruno TATU Date: Tue, 26 Sep 2023 11:42:13 +0200 Subject: [PATCH] keep rights from current log --- userlogrotate/files/userlogrotate | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/userlogrotate/files/userlogrotate b/userlogrotate/files/userlogrotate index 9599d63b..2a76eaaf 100644 --- a/userlogrotate/files/userlogrotate +++ b/userlogrotate/files/userlogrotate @@ -40,9 +40,14 @@ rotate () { } user_for() { + stat -L -c '%U' $1 +} + +group_for() { stat -L -c '%G' $1 } + delete_old() { if [ ${DELETE_AFTER_RETENTION_DAYS} == "true" ]; then if [ ${DRY_RUN} == "false" ]; then @@ -67,7 +72,8 @@ for path in ${SYSTEM_LOGS_SEARCH_PATHS[@]}; do log_paths=$(ls -1 -d ${path}/${log_name} 2>/dev/null | grep -v \.bak\.) for file in ${log_paths}; do user="$(user_for "${file}")" - rotate "${file}" root:"${user}" + group="$(group_for "${file}")" + rotate "${file}" "${group}":"${user}" delete_old "$(dirname "${file}")" done done @@ -78,7 +84,8 @@ for path in ${APPLICATIVE_LOGS_SEARCH_PATHS[@]}; do log_paths=$(ls -1 -d ${path}/${log_name} 2>/dev/null | grep -v \.bak\.) for file in ${log_paths}; do user="$(user_for "${file}")" - rotate "${file}" "${user}":"${user}" + group="$(group_for "${file}")" + rotate "${file}" "${group}":"${user}" delete_old "$(dirname "${file}")" done done