From a8695cd4d85e027f9ab03a6704dd31d20d1c8d9f Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Tue, 14 Feb 2023 21:36:57 +0900 Subject: [PATCH] debian/{postinst,postrm}: Add stat overrides for all IPC directories The post-installation and post-removal scripts in the debian package do not create or remove stat overrides for the directories in the IPC directories, possibly leaving ownership and permissions in an incorrect state. This commit modifies the post-installation and post-removal scripts so that stat overrides for IPC directories are correctly created and removed. --- debian/postinst | 30 ++++++++++++++++++++---------- debian/postrm | 24 +++++++++++++++++------- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/debian/postinst b/debian/postinst index 7076958..b5b347c 100755 --- a/debian/postinst +++ b/debian/postinst @@ -1,5 +1,16 @@ #!/bin/sh +path_set_user_group_mode() { + path="$1" + user="$2" + group="$3" + mode="$4" + + if ! dpkg-statoverride --list "$path" >/dev/null 2>&1; then + dpkg-statoverride --update --add "$user" "$group" "$mode" "$path" + fi +} + main() { action="$1" @@ -13,19 +24,18 @@ main() { # so we don't change it. if addgroup toolbox; then - if ! dpkg-statoverride --list /var/lib/toolbox >/dev/null 2>&1; then - dpkg-statoverride --update --add root toolbox 0770 /var/lib/toolbox - fi + path_set_user_group_mode "/var/lib/toolbox" "root" "toolbox" "0770" fi if addgroup toolbox_ipc; then - if ! dpkg-statoverride --list /var/lib/toolbox/ipc >/dev/null 2>&1; then - dpkg-statoverride --update --add root toolbox_ipc 2770 /var/lib/toolbox/ipc - fi - - if ! dpkg-statoverride --list /var/lib/toolbox/uipc >/dev/null 2>&1; then - dpkg-statoverride --update --add root toolbox_ipc 2770 /var/lib/toolbox/uipc - fi + path_set_user_group_mode "/var/lib/toolbox/ipc" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/ipc/pub" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/ipc/priv" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/ipc/pubsub" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/uipc" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/uipc/pub" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/uipc/priv" "root" "toolbox_ipc" "2770" + path_set_user_group_mode "/var/lib/toolbox/uipc/pubsub" "root" "toolbox_ipc" "2770" fi return 0 diff --git a/debian/postrm b/debian/postrm index 6403e9e..7974b96 100755 --- a/debian/postrm +++ b/debian/postrm @@ -1,5 +1,13 @@ #!/bin/sh +remove_statoverride() { + path="$1" + + if dpkg-statoverride --list "$path" >/dev/null 2>&1; then + dpkg-statoverride --remove "$path" + fi +} + main() { action="$1" @@ -8,13 +16,15 @@ main() { return 0 fi - if dpkg-statoverride --list /var/lib/toolbox/ipc >/dev/null 2>&1; then - dpkg-statoverride --remove /var/lib/toolbox/ipc - fi - - if dpkg-statoverride --list /var/lib/toolbox >/dev/null 2>&1; then - dpkg-statoverride --remove /var/lib/toolbox - fi + remove_statoverride "/var/lib/toolbox/uipc/pubsub" + remove_statoverride "/var/lib/toolbox/uipc/priv" + remove_statoverride "/var/lib/toolbox/uipc/pub" + remove_statoverride "/var/lib/toolbox/uipc" + remove_statoverride "/var/lib/toolbox/ipc/pubsub" + remove_statoverride "/var/lib/toolbox/ipc/priv" + remove_statoverride "/var/lib/toolbox/ipc/pub" + remove_statoverride "/var/lib/toolbox/ipc" + remove_statoverride "/var/lib/toolbox" delgroup toolbox delgroup toolbox_ipc -- 2.47.3