From e9e5e64a18bf385250d61d21a2f95eb1c8790961 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Wed, 4 Nov 2020 09:51:26 -0500 Subject: [PATCH] Use /tmp/podman-run-* for backup XDG_RUNTIME_DIR We need to block systemd from cleaning up this directory by dropping a /usr/lib/tmpfiles.d/podman.conf file in place. Signed-off-by: Daniel J Walsh --- Makefile | 5 +++-- contrib/{varlink => tmpfile}/podman.conf | 1 + pkg/util/utils_supported.go | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) rename contrib/{varlink => tmpfile}/podman.conf (53%) diff --git a/Makefile b/Makefile index 5cfed666a174..75b2e9833580 100644 --- a/Makefile +++ b/Makefile @@ -493,6 +493,8 @@ install.bin-nobuild: install ${SELINUXOPT} -d -m 755 $(DESTDIR)$(BINDIR) install ${SELINUXOPT} -m 755 bin/podman $(DESTDIR)$(BINDIR)/podman test -z "${SELINUXOPT}" || chcon --verbose --reference=$(DESTDIR)$(BINDIR)/podman bin/podman + install ${SELINUXOPT} -m 755 -d ${DESTDIR}${TMPFILESDIR} + install ${SELINUXOPT} -m 644 contrib/tmpfile/podman.conf ${DESTDIR}${TMPFILESDIR}/podman.conf .PHONY: install.bin install.bin: podman install.bin-nobuild @@ -531,14 +533,13 @@ install.docker: docker-docs .PHONY: install.varlink ifneq (,$(findstring varlink,$(BUILDTAGS))) install.varlink: - install ${SELINUXOPT} -m 755 -d ${DESTDIR}${SYSTEMDDIR} ${DESTDIR}${USERSYSTEMDDIR} ${DESTDIR}${TMPFILESDIR} + install ${SELINUXOPT} -m 755 -d ${DESTDIR}${SYSTEMDDIR} ${DESTDIR}${USERSYSTEMDDIR} install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.socket ${DESTDIR}${SYSTEMDDIR}/io.podman.socket install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.socket ${DESTDIR}${USERSYSTEMDDIR}/io.podman.socket install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.service ${DESTDIR}${SYSTEMDDIR}/io.podman.service # User units are ordered differently, we can't make the *system* multi-user.target depend on a user unit. # For user units the default.target that's the default is fine. sed -e 's,^WantedBy=.*,WantedBy=default.target,' < contrib/varlink/io.podman.service > ${DESTDIR}${USERSYSTEMDDIR}/io.podman.service - install ${SELINUXOPT} -m 644 contrib/varlink/podman.conf ${DESTDIR}${TMPFILESDIR}/podman.conf else install.varlink: endif diff --git a/contrib/varlink/podman.conf b/contrib/tmpfile/podman.conf similarity index 53% rename from contrib/varlink/podman.conf rename to contrib/tmpfile/podman.conf index 732c15185c25..f656613bef47 100644 --- a/contrib/varlink/podman.conf +++ b/contrib/tmpfile/podman.conf @@ -1 +1,2 @@ +x /tmp/podman-run-[0-9]* d /run/podman 0700 root root diff --git a/pkg/util/utils_supported.go b/pkg/util/utils_supported.go index e08fd6dda1ec..2d636a7cb075 100644 --- a/pkg/util/utils_supported.go +++ b/pkg/util/utils_supported.go @@ -38,7 +38,7 @@ func GetRuntimeDir() (string, error) { } } if runtimeDir == "" { - tmpDir := filepath.Join(os.TempDir(), fmt.Sprintf("run-%s", uid)) + tmpDir := filepath.Join(os.TempDir(), fmt.Sprintf("podman-run-%s", uid)) if err := os.MkdirAll(tmpDir, 0700); err != nil { logrus.Debug(err) }