From 9e047438fa16f7e06d6049c35fcf1db2c48f6645 Mon Sep 17 00:00:00 2001 From: Matej Habrnal Date: Tue, 12 May 2015 14:54:20 +0200 Subject: [PATCH] report client: check owner of /var/cache/abrt-di when unpacking fails If unpacking of debuginfo fails and '/vat/cache/abrt-di' is not owned by abrt.abrt the client provides a solution how to fix the issue. Related to rhbz#1213485 Signed-off-by: Matej Habrnal --- src/client-python/debuginfo.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/client-python/debuginfo.py b/src/client-python/debuginfo.py index a019d25..98bfd0c 100644 --- a/src/client-python/debuginfo.py +++ b/src/client-python/debuginfo.py @@ -5,6 +5,7 @@ import sys import os +import pwd import time import errno import shutil @@ -30,7 +31,6 @@ def ensure_abrt_uid(fn): the function. """ - import pwd current_uid = os.getuid() current_gid = os.getgid() abrt = pwd.getpwnam("abrt") @@ -499,7 +499,15 @@ class DebugInfoDownload(YumBase): exact_files=download_exact_files) if unpack_result == RETURN_FAILURE: # recursively delete the temp dir on failure - print _("Unpacking failed, aborting download...") + print(_("Unpacking failed, aborting download...")) + + s = os.stat(self.cachedir) + abrt = pwd.getpwnam("abrt") + if (s.st_uid != abrt.pw_uid) or (s.st_gid != abrt.pw_gid): + print(_("'{0}' must be owned by abrt. " + "Please run '# chown -R abrt.abrt {0}' " + "to fix the issue.").format(self.cachedir)) + clean_up() return RETURN_FAILURE -- 2.1.0