mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-21 11:16:16 +02:00
Ulrich Drepper in <http://bugzilla.redhat.com/232652>. * tests/misc/runcon-no-reorder: New file. Test for the above. * tests/misc/Makefile.am (TESTS): Add runcon-no-reorder.
209 lines
8.4 KiB
Plaintext
209 lines
8.4 KiB
Plaintext
2007-03-18 Jim Meyering <jim@meyering.net>
|
|
|
|
* src/runcon.c (main): Don't reorder arguments. Reported by
|
|
Ulrich Drepper in <http://bugzilla.redhat.com/232652>.
|
|
* tests/misc/runcon-no-reorder: New file. Test for the above.
|
|
* tests/misc/Makefile.am (TESTS): Add runcon-no-reorder.
|
|
|
|
* src/runcon.c (main): Remove "." at end of a diagnostic.
|
|
|
|
2007-02-02 Jim Meyering <jim@meyering.net>
|
|
|
|
* src/runcon.c: New program.
|
|
* src/Makefile.am (bin_PROGRAMS): Add runcon.
|
|
(runcon_LDADD): Define.
|
|
* README: Add runcon to the list of programs.
|
|
* AUTHORS: Add this: runcon: Russell Coker
|
|
* tests/help-version: Add runcon as an exception.
|
|
* man/Makefile.am (dist_man_MANS): Add runcon.1.
|
|
(runcon.1): New dependency.
|
|
|
|
2007-01-31 Jim Meyering <jim@meyering.net>
|
|
|
|
mkfifo, mknod: Accept new "-Z, --context=C" option.
|
|
* src/mkfifo.c, src/mknod.c: Include <selinux/selinux.h>.
|
|
(main): Honor it.
|
|
* src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX).
|
|
|
|
mkdir: Accept new "-Z, --context=C" option.
|
|
* src/mkdir.c: Include <selinux/selinux.h>.
|
|
(main): Honor it.
|
|
* src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX).
|
|
|
|
* tests/cp/cp-a-selinux: New file. Test for the bug reported in
|
|
<http://bugzilla.redhat.com/219900>.
|
|
* tests/cp/Makefile.am (TESTS): Add cp-a-selinux.
|
|
|
|
* tests/selinux: New file.
|
|
* tests/Makefile.am (EXTRA_DIST): Add selinux.
|
|
* tests/misc/selinux: Source the new script, rather than open coding it.
|
|
|
|
Change how "cp -a" and "cp --preserve=context" work with SELinux.
|
|
Now, cp -a attempts to preserve context, but failure to do so does
|
|
not change cp's exit status. However "cp --preserve=context" is
|
|
similar, but failure *does* cause cp to exit with nonzero status.
|
|
* src/copy.h (struct cp_options) [require_preserve_context]: New member.
|
|
* src/copy.c (copy_reg, copy_internal): Implement the above.
|
|
* src/mv.c (cp_option_init): Initialize the new member.
|
|
* src/install.c (cp_option_init): Likewise.
|
|
* src/cp.c (cp_option_init): Likewise.
|
|
(decode_preserve_arg): Set it or reset it.
|
|
|
|
FIXME: add an on-writable-NFS-only test
|
|
|
|
2007-01-20 Jim Meyering <jim@meyering.net>
|
|
|
|
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).
|
|
* src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define.
|
|
|
|
* tests/misc/selinux [VERBOSE]: Print version info for each
|
|
of the tested tools, not just ls.
|
|
|
|
* src/c99-to-c89.diff: Remove the ls.c patch, now that I've
|
|
temporarily removed the offending c99'ism.
|
|
|
|
* src/chcon.c (usage): Split a string literal that was longer than 509.
|
|
|
|
* src/ls.c (gobble_file): Don't call getfilecon unless print_scontext.
|
|
Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA.
|
|
|
|
* src/c99-to-c89.diff: Adjust offsets.
|
|
|
|
* AUTHORS: Add chcon.
|
|
|
|
* src/c99-to-c89.diff: Remove trailing blanks.
|
|
|
|
* src/chcon.c: Don't include "dirname.h". system.h already includes it.
|
|
|
|
* gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H.
|
|
|
|
* src/c99-to-c89.diff: Handle a new c99'ism in ls.c.
|
|
|
|
* src/id.c (main): Tweak id -Z diagnostic.
|
|
|
|
id: Add SELinux support: -Z option.
|
|
* src/id.c (main): Apply patches from Fedora, with these changes:
|
|
Remove #ifdef WITH_SELINUX.
|
|
Use error (EXIT_FAILURE, not fprintf+exit(1).
|
|
* src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX).
|
|
|
|
2007-01-06 Jim Meyering <jim@meyering.net>
|
|
|
|
stat: Add support for SELinux in the form of a %C format directive.
|
|
* src/stat.c (follow_links): Make this variable file-global.
|
|
(out_file_context): New function.
|
|
(print_statfs): Honor %C.
|
|
(print_stat): Honor %C.
|
|
(do_stat): Remove follow_links parameter.
|
|
(usage): Document the two %C directives.
|
|
(main): Accept -Z (though it's a no-op).
|
|
* src/Makefile.am (stat_LDADD): Define.
|
|
|
|
ls: Add support for SELinux and a slightly modified -Z option.
|
|
I started with the patches from Red Hat.
|
|
The entries below tell how the code evolved.
|
|
|
|
* src/ls.c (print_long_format, print_file_name_and_frills): When
|
|
there is no security context (due to getfilecon/lgetfilecon failing
|
|
with e.g. ENOTSUP), print it as "?", not "".
|
|
* src/ls.c (print_file_name_and_frills): Make -Z work without -l.
|
|
(length_of_file_name_and_frills): Likewise.
|
|
|
|
* src/ls.c: Remove the --lcontext and --scontext options.
|
|
Change the way -Z, --context work so that it no longer implies -l.
|
|
Thus, -Z -l will work like -lcontext and -Z without -l will work
|
|
like --scontext.
|
|
|
|
Adjust tests to reflect new 'ls -l' syntax -- affects only
|
|
systems with SELinux when operating on a file with no ACL.
|
|
These tests assumed that everything before the first space on
|
|
each line is the 10-byte mode string. But there may also be a "+"
|
|
in the 11th column, just before the space. However, note that this
|
|
is not new. The same thing would have happened even without the
|
|
change below, when listing a file with an ACL.
|
|
* tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm:
|
|
* tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod:
|
|
* tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm:
|
|
|
|
Don't make compilation depend on USE_ACL. An SELinux security
|
|
context counts as an "alternate access control method", so ls
|
|
must output a "+" for each file with a security context.
|
|
* src/ls.c [struct fileinfo] (have_acl): Declare unconditionally.
|
|
(FILE_HAS_ACL): Remove macro definition. Use f->have_acl directly.
|
|
(gobble_file): Record whether a file has a security context, and
|
|
update the condition used to determine whether to print the "+".
|
|
(gobble_file): Call getfilecon/lgetfilecon also when
|
|
format == long_format, so that we get the "+".
|
|
|
|
* src/ls.c (gobble_file): Add a comment explaining why (with a
|
|
security context option) ls doesn't exit nonzero due to e.g.,
|
|
getfilecon failing with errno == ENOTSUP.
|
|
|
|
* src/ls.c (gobble_file): Ignore failure of getfilecon if it's due
|
|
to ENOTSUP.
|
|
|
|
* src/ls.c (gobble_file): Factor out three small blocks using
|
|
getfilecon and lgetfilecon.
|
|
Don't ignore return value from getfilecon and lgetfilecon.
|
|
|
|
* src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C
|
|
ternary operator).
|
|
(print_scontext_format): Likewise.
|
|
(print_scontext): Declare to be "bool", not int. Adjust uses.
|
|
|
|
* src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX).
|
|
|
|
* tests/misc/chcon: New file.
|
|
* tests/misc/chcon-fail: New file.
|
|
* tests/Makefile.am (check-root): Run new, root-only misc/chcon test.
|
|
* tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail.
|
|
|
|
* tests/misc/Makefile.am (TESTS): Add selinux.
|
|
* tests/misc/selinux: New file.
|
|
* tests/help-version: Skip chcon.
|
|
* man/chcon.x: New file.
|
|
* man/Makefile.am: Build chcon.1.
|
|
|
|
New program: chcon
|
|
* gl/modules/selinux-at: New module. Check for libselinux and set
|
|
LIB_SELINUX here, unconditionally, rather than depending on
|
|
the configure-time --enable-selinux option.
|
|
* gl/modules/selinux-h: New module.
|
|
* bootstrap.conf (gnulib_modules): Add selinux-at.
|
|
* gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files.
|
|
* gl/lib/se-selinux_.h: New file.
|
|
* gl/lib/se-context_.h: New file.
|
|
* gl/m4/selinux-selinux-h.m4: New file.
|
|
* gl/m4/selinux-context-h.m4: New file.
|
|
* src/Makefile.am (bin_PROGRAMS): Add chcon.
|
|
(chcon_LDADD): Define.
|
|
* README: Add chcon to the list of programs.
|
|
* src/chcon.c: Rewrite the original (Red Hat) chcon to use fts.
|