]> git.corax.cc Git - toolbox/commitdiff
debian/{postinst,postrm}: Add stat overrides for all IPC directories
authorMatthias Kruk <m@m10k.eu>
Tue, 14 Feb 2023 12:36:57 +0000 (21:36 +0900)
committerMatthias Kruk <m@m10k.eu>
Tue, 14 Feb 2023 12:36:57 +0000 (21:36 +0900)
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
debian/postrm

index 70769582045664f5454e571dd1937f6a85a3af48..b5b347c932898f91adfafa20076eb34440c99573 100755 (executable)
@@ -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
index 6403e9e7153375040eaa71eef1c1c8646de51265..7974b962c4452604f8720888e60525dcde67ca28 100755 (executable)
@@ -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