This adds 'force' keyword argument to selinux.restorecon() function using SELINUX_RESTORECON_SET_SPECFILE_CTX flag. Signed-off-by: Viktor Ashirov <vashirov@xxxxxxxxxx> --- libselinux/src/selinuxswig_python.i | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libselinux/src/selinuxswig_python.i b/libselinux/src/selinuxswig_python.i index 2af7c7e0..4c73bf92 100644 --- a/libselinux/src/selinuxswig_python.i +++ b/libselinux/src/selinuxswig_python.i @@ -20,7 +20,7 @@ DISABLED = -1 PERMISSIVE = 0 ENFORCING = 1 -def restorecon(path, recursive=False, verbose=False): +def restorecon(path, recursive=False, verbose=False, force=False): """ Restore SELinux context on a given path Arguments: @@ -29,6 +29,9 @@ def restorecon(path, recursive=False, verbose=False): Keyword arguments: recursive -- Change files and directories file labels recursively (default False) verbose -- Show changes in file labels (default False) + force -- Force reset of context to match file_context for customizable files, + and the default file context, changing the user, role, range portion as well + as the type (default False) """ restorecon_flags = SELINUX_RESTORECON_IGNORE_DIGEST | SELINUX_RESTORECON_REALPATH @@ -36,6 +39,8 @@ def restorecon(path, recursive=False, verbose=False): restorecon_flags |= SELINUX_RESTORECON_RECURSE if verbose: restorecon_flags |= SELINUX_RESTORECON_VERBOSE + if force: + restorecon_flags |= SELINUX_RESTORECON_SET_SPECFILE_CTX selinux_restorecon(os.path.expanduser(path), restorecon_flags) def chcon(path, context, recursive=False): -- 2.20.1