From: Matthias Kruk Date: Tue, 14 Feb 2023 12:36:57 +0000 (+0900) Subject: debian/{postinst,postrm}: Add stat overrides for all IPC directories X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=a8695cd4d85e027f9ab03a6704dd31d20d1c8d9f;p=toolbox 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. --- 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