diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2006-07-17 03:13:14 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2006-07-17 03:13:14 +0000 |
commit | 628c7baa85934252389017886f36cd3d025a6ddb (patch) | |
tree | 126f9453f6ce35ee2d142bd0f8c0da705f0d6abe | |
parent | d847e28b37cba59cb449efcc6623bb0bfcc2765c (diff) | |
download | coreutils-628c7baa85934252389017886f36cd3d025a6ddb.tar.xz |
chmod, install, and mkdir now leave setgid and setuid bits
of directories alone unless you specify them explicitly.
install and mkdir now implement X correctly.
install now creates parent directories with mode 755, without
changing their owner or group.
-rw-r--r-- | ChangeLog | 38 | ||||
-rw-r--r-- | doc/ChangeLog | 22 | ||||
-rw-r--r-- | lib/ChangeLog | 27 | ||||
-rw-r--r-- | m4/ChangeLog | 10 |
4 files changed, 97 insertions, 0 deletions
@@ -1,3 +1,41 @@ +2006-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: chmod, install, and mkdir now leave setgid and setuid bits + of directories alone unless you specify them explicitly. + install and mkdir now implement X correctly. + install now creates parent directories with mode 755, without + changing their owner or group. + * src/chmod.c (process_file): Adjust to mode_adjust API change. + * src/install.c: Include mkancesdirs.h. + (announce_mkdir, make_ancestor): New functions. + (DEFAULT_MODE): New macro, specifying initial value of 'mode'. + (mode): Use it. + (dir_mode, dir_mode_bits): New vars. + (main): Set dir modes separately from nondir, so that the X + op of -m works correctly. + (main): Remove cwd_errno cruft, since make_dir_parents no longer + affects cwd. Adjust to new make_dir_parents API. + (install_file_in_file_parents): 2nd arg is now char *, not char + const *. Use mkancesdirs instead of rolling our own code. + (change_attributes): Don't worry about AFS, since that kludge + should not be needed any more. + * mkdir.c (struct mkdir_options): New struct. + (announce_mkdir, make_ancestor): New functions. + (main): Use them. Adjust to mode_adjust API change. Stick with + umask 0. Use make_dir_parents for all the work. + * mkfifo.c (main): Adjust to new mode_adjust API. + * mknod.c (main): Likewise. + * tests/chmod/setgid: Do the setgid test instead of bailing. + * tests/mkdir/p-3: Remove re_protect case that no longer applies. + GNU chmod now behaves like other versions of chmod. + * tests/mkdir/perm: Add a test for the X bug. + +2006-07-14 Paul Eggert <eggert@cs.ucla.edu> + + * src/base64.c (do_decode): Output to parameter OUT, not to stdout. + This doesn't fix any bugs, since OUT always equals stdout, but it + makes the code easier to understand. + 2006-07-14 Jim Meyering <jim@meyering.net> * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files, diff --git a/doc/ChangeLog b/doc/ChangeLog index 518a3f131..ab3cdd58d 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,25 @@ +2006-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * coreutils.texi: Change GNU to @acronym{GNU} in a few places. + Use "set-user-ID" and "set-group-ID" a bit more consistently. + Use "appropriate privileges" rather than "super-user" a bit + more consistently. + (install invocation): Parent directories are now 755 without uid + or gid changing. The default mode is now 0755, not 755. + (mkdir invocation): Rewrite the top-level usage description, since + I couldn't easily follow the old one. It's now 3 lines not 8. + For -m, describe file permission bits versus other bits, and note + that mkdir is atomic if you don't mention special bits. + (chmod invocation): Mention what chmod does to setgid and setuid bits. + * perm.texi (Mode Structure): Modernize the explanation of the + setuid and setgid bits on directories. + (Changing Special Mode Bits): Mention that a implies both u and g + for s. Cross reference to new node. + (Numeric Modes): Don't claim that 0055 is the same as 55; this isn't + true any more. Mention new node. + 4755 is now like u=rwxs,go=rx,g-s, not like u=rwxs,go=rx. + (Directory Setuid and Setgid): New node. + 2006-07-08 Jim Meyering <jim@meyering.net> * coreutils.texi (Squeezing): Separate doubled "the", so typo-checkers diff --git a/lib/ChangeLog b/lib/ChangeLog index 774159fbd..7437f1f06 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,30 @@ +2006-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * dirchownmod.c, dirchownmod.h, mkancesdirs.c, mkancesdirs.h: + New files. + * mkdir-p.c: Don't include alloca.h, stdio.h, sys/types.h, + unistd.h, string.h, chdir-safer.h, dirname.h, lchmod.h, lchown.h, + save-cwd.h. Instead, include dirchownmod.h and mkancesdirs.h. + (make_dir_parents): New args MAKE_ANCESTOR, OPTIONS, ANNOUNCE, + MODE_BITS. Remove options VERBOSE_FMT_STRING, CWD_ERRNO. All + callers changed. Revamp internals significantly, by not + attempting to create directories that are temporarily more + permissive than the final results. Do not attempt to use + save_cwd/restore_cwd; it isn't worth it for mkdir and install. + This removes some race conditions, fixes some bugs, and simplifies + things. Use new dirchownmod function to do owner and mode changes. + * mkdir-p.h: Likewise. + * modechange.c (octal_to_mode): New function. + (struct mode_change): New member mentioned. + (make_node_op_equals): New arg mentioned. All callers changed. + (mode_compile): Keep track of which mode bits the user has explicitly + mentioned. + (mode_adjust): New arg DIR, so that we implement the X op correctly. + New arg PMODE_BITS, to keep track of which mode bits the user + mentioned; it treats S_ISUID and S_ISGID speciall. + All callers changed. + * lib/modechange.h: Likewise. + 2006-07-16 Jim Meyering <jim@meyering.net> * userspec.c (parse_with_separator): Say "invalid spec" rather than diff --git a/m4/ChangeLog b/m4/ChangeLog index abeddd220..0e0b6b046 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,13 @@ +2006-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * mkancesdirs.m4: New file. + * afs.m4: Remove; no longer needed. + * jm-macros.m4 (gl_MACROS): Remove gl_AFS. + * mkdir-p.m4 (gl_MKDIR_PARENTS): Mention dirchownmod.c, dirchownmod.h. + Don't require AC_FUNC_ALLOCA, gl_AFS, gl_CHDIR_SAFER; no longer needed. + Require gl_FUNC_LCHOWN, since dirchownmod.c needs it. + * prereq.m4 (gl_PREREQ): Require gl_MKANCESDIRS. + 2006-07-11 Eric Blake <ebb9@byu.net> * absolute-header.m4: Fix comments to match recent change. |