aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorDanish Prakash <contact@danishpraka.sh>2025-10-30 16:19:13 +0530
committerStefano Brivio <sbrivio@redhat.com>2025-11-04 18:49:43 +0100
commit1d164396397799088b6dad13178781553333f2aa (patch)
treedc5fa5e442bfa8b32803f6bd8b6f6f5795c9d69a
parentf6b6118fcabda6d6a89a4a16dfee151ab97f1d7a (diff)
downloadpasst-1d164396397799088b6dad13178781553333f2aa.tar
passt-1d164396397799088b6dad13178781553333f2aa.tar.gz
passt-1d164396397799088b6dad13178781553333f2aa.tar.bz2
passt-1d164396397799088b6dad13178781553333f2aa.tar.lz
passt-1d164396397799088b6dad13178781553333f2aa.tar.xz
passt-1d164396397799088b6dad13178781553333f2aa.tar.zst
passt-1d164396397799088b6dad13178781553333f2aa.zip
contrib/selinux: use regex instead of SELinux template
It might be possible to avoid using SELinux template (%USERID), and instead using regex to match user ids. This would allow discarding the explicit restorecon call while during package builds[1]. Original suggestion from cathy.hu@suse.com: > running restorecon would be unnecessary if the passt upstream selinux > module would not use ${USERID} in pasta.fc (gets converted to [0-9]+ anyway) [1] - https://passt.top/passt/commit/?id=e019323538699967c155c29411545223dadfc0f5 Signed-off-by: Danish Prakash <contact@danishpraka.sh> Reviewed-by: Max Chernoff <git@maxchernoff.ca> Tested-by: Max Chernoff <git@maxchernoff.ca> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r--contrib/fedora/passt.spec11
-rw-r--r--contrib/selinux/pasta.fc12
2 files changed, 6 insertions, 17 deletions
diff --git a/contrib/fedora/passt.spec b/contrib/fedora/passt.spec
index 663289f..d1bcf4a 100644
--- a/contrib/fedora/passt.spec
+++ b/contrib/fedora/passt.spec
@@ -103,17 +103,6 @@ fi
%posttrans selinux
%selinux_relabel_post -s %{selinuxtype}
-# %selinux_relabel_post calls fixfiles(8) with the previous file_contexts file
-# (see selabel_file(5)) in order to restore only the file contexts which
-# actually changed. However, as file_contexts doesn't support %{USERID}
-# substitutions, this will not work for specific file contexts that pasta needs
-# to have under /run/user.
-#
-# Restore those explicitly, hiding errors from restorecon(8): we can't pass a
-# path that's more specific than this, but at the same time /run/user often
-# contains FUSE mountpoints that can't be accessed as root, leading to
-# "Permission denied" messages, but not failures.
-restorecon -R /run/user 2>/dev/null
%files
%license LICENSES/{GPL-2.0-or-later.txt,BSD-3-Clause.txt}
diff --git a/contrib/selinux/pasta.fc b/contrib/selinux/pasta.fc
index e60c614..82dbcbe 100644
--- a/contrib/selinux/pasta.fc
+++ b/contrib/selinux/pasta.fc
@@ -12,11 +12,11 @@
/usr/bin/pasta.avx2 system_u:object_r:pasta_exec_t:s0
/tmp/pasta\.pcap system_u:object_r:pasta_log_t:s0
/var/run/pasta\.pid system_u:object_r:pasta_pid_t:s0
-/run/user/%{USERID}/netns system_u:object_r:ifconfig_var_run_t:s0
-/run/user/%{USERID}/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0
+/run/user/[0-9]+/netns system_u:object_r:ifconfig_var_run_t:s0
+/run/user/[0-9]+/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0
# In case XDG_RUNTIME_DIR is not set (i.e. no systemd user session) Podman falls
# back to a location under /tmp
-/tmp/storage-run-%{USERID}/netns system_u:object_r:ifconfig_var_run_t:s0
-/tmp/storage-run-%{USERID}/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0
-/tmp/containers-user-%{USERID}/netns system_u:object_r:ifconfig_var_run_t:s0
-/tmp/containers-user-%{USERID}/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0
+/tmp/storage-run-[0-9]+/netns system_u:object_r:ifconfig_var_run_t:s0
+/tmp/storage-run-[0-9]+/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0
+/tmp/containers-user-[0-9]+/netns system_u:object_r:ifconfig_var_run_t:s0
+/tmp/containers-user-[0-9]+/containers/networks/rootless-netns system_u:object_r:ifconfig_var_run_t:s0