From 9f701283534745bf93b41a1886183e9ef1d06566 Mon Sep 17 00:00:00 2001 From: Martin Basti Date: Wed, 15 Jul 2015 16:20:59 +0200 Subject: [PATCH] sysrestore: copy files instead of moving them to avoind SELinux issues Copying files restores SELinux context. https://fedorahosted.org/freeipa/ticket/4923 Reviewed-By: Alexander Bokovoy --- ipapython/sysrestore.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ipapython/sysrestore.py b/ipapython/sysrestore.py index c058ff7c0..99d78b1b4 100644 --- a/ipapython/sysrestore.py +++ b/ipapython/sysrestore.py @@ -186,7 +186,9 @@ class FileStore: if new_path is not None: path = new_path - shutil.move(backup_path, path) + shutil.copy(backup_path, path) # SELinux needs copy + os.remove(backup_path) + os.chown(path, int(uid), int(gid)) os.chmod(path, int(mode)) @@ -217,7 +219,9 @@ class FileStore: root_logger.debug(" -> Not restoring - '%s' doesn't exist", backup_path) continue - shutil.move(backup_path, path) + shutil.copy(backup_path, path) # SELinux needs copy + os.remove(backup_path) + os.chown(path, int(uid), int(gid)) os.chmod(path, int(mode))