summaryrefslogtreecommitdiff
path: root/src/copy.h
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-01-20 16:10:43 +0100
committerJim Meyering <jim@meyering.net>2007-03-29 21:37:06 +0200
commit85ddc626be5fd202f04aa8ced398b5119174b556 (patch)
treefdece904533e6747c797254cff27512a3e82cb3d /src/copy.h
parent5a7fe9c0f8a3154d52d44265c73675b91441b209 (diff)
downloadcoreutils-85ddc626be5fd202f04aa8ced398b5119174b556.tar.xz
cp, mv, install: add SELinux support, but unlike with the Red Hat
patch, mv and cp do not provide the "-Z context" option. * src/copy.c: Include <selinux/selinux.h>. (restore_default_fscreatecon): New function. (copy_reg): Make cp --preserve=context work for existing destination. (copy_internal): Likewise for new destinations. * src/copy.h (cp_options) [preserve_security_context]: New member. * src/cp.c: Include <selinux/selinux.h>. (selinux_enabled): New global. (usage): Mention new --preserve=context option. (PRESERVE_CONTEXT): Define/use. (decode_preserve_arg): Handle PRESERVE_CONTEXT. (main): Remove an obsolete comment. If --preserve=context is specified on a system without SELinux enabled, give a diagnostic and fail. * src/mv.c: Include <selinux/selinux.h>. Set x->preserve_security_context if SELinux is enabled. * src/install.c: Accept new "-Z, --context=C" option. Accept --preserve-context option (but not -P option). Accept alternate spelling: --preserve_context, for now. Include <selinux/selinux.h> and "quotearg.h". (selinux_enabled, use_default_selinux_context): New globals. (PRESERVE_CONTEXT_OPTION): Define. (cp_option_init): Default: do not preserve security context. (setdefaultfilecon): New function. (main): Honor new options. * src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD): Add $(LIB_SELINUX).
Diffstat (limited to 'src/copy.h')
-rw-r--r--src/copy.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/copy.h b/src/copy.h
index c815baf64..eab6c8678 100644
--- a/src/copy.h
+++ b/src/copy.h
@@ -1,5 +1,5 @@
/* core functions for copying files and directories
- Copyright (C) 89, 90, 91, 1995-2005 Free Software Foundation.
+ Copyright (C) 89, 90, 91, 1995-2007 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -127,6 +127,9 @@ struct cp_options
bool preserve_ownership;
bool preserve_mode;
bool preserve_timestamps;
+ /* If true, attempt to preserve the SELinux security context, too.
+ Set this only if the kernel is SELinux enabled. */
+ bool preserve_security_context;
/* Enabled for mv, and for cp by the --preserve=links option.
If true, attempt to preserve in the destination files any