bug-fileutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ANNOUNCE] GNU fileutils 4.1


From: Dave Dittrich
Subject: Re: [ANNOUNCE] GNU fileutils 4.1
Date: Tue, 1 May 2001 15:15:18 -0700 (PDT)

Jim,

I recently submitted some suggested changes to "dd" to add MD5
checksumming to (I think) <address@hidden>, but never heard
back from anyone.  That may not be the right address, but I knew of no
other.  I later heard from Hank Leininger, who liked the idea and
offered to help.

I, and several others, are continuing to work on these enhancements
and would like to see them considered for inclusion in dd.  (I wish
we would have known you were about to release these so as to get them
tested and included, but alas, timing sometimes just doesn't work
out they way one would like.)

Anyway, the addition of MD5 checksumming will greatly assist the
development of badly needed open source computer forensic tools, and I
hope that we can work together to see this happen.

Let me know who is appropriate to work with on this.

Thanks very much.

--
Dave Dittrich                           Computing & Communications
address@hidden             Client Services
http://staff.washington.edu/dittrich    University of Washington

PGP key      http://staff.washington.edu/dittrich/pgpkey.txt
Fingerprint  FE 97 0C 57 08 43 F3 EB 49 A1 0C D0 8E 0C D0 BE C8 38 CC B5


On 30 Apr 2001, Jim Meyering wrote:

>
> Version 4.0 of the fileutils was released nearly 2.5 years ago, on
> 1998-11-14.  That's way too long an interval between major releases.
> However there have been 45 test releases since 4.0, and some of those
> turned out to be pretty stable.  In any case, I can say with confidence
> that 4.2 won't take as long.
>
> Version 4.1 is available here (but please check a GNU mirror, first):
>
>   ftp://ftp.gnu.org/gnu/fileutils/fileutils-4.1.tar.gz  (1.8MB)
>
> Here are the MD5 and SHA1 signatures for the .tar.gz file
>
> 2fa04ceee87e962ddf72f32a2d6b906d  fileutils-4.1.tar.gz
> d74e82f6edae7c40b3d075c5a30dc27c79f937ff  fileutils-4.1.tar.gz
>
>
> There is one new program: shred, written by Colin Plumb.
>
> Here is its --help output:
>
>   ---------------------------------------------------------------------
>   Usage: shred [OPTIONS] FILE [...]
>   Overwrite the specified FILE(s) repeatedly, in order to make it harder
>   for even very expensive hardware probing to recover the data.
>
>     -f, --force    change permissions to allow writing if necessary
>     -n, --iterations=N  Overwrite N times instead of the default (25)
>     -s, --size=N   shred this many bytes (suffixes like k, M, G accepted)
>     -u, --remove   truncate and remove file after overwriting
>     -v, --verbose  show progress
>     -x, --exact    do not round file sizes up to the next full block
>     -z, --zero     add a final overwrite with zeros to hide shredding
>     -              shred standard output
>       --help     display this help and exit
>       --version  print version information and exit
>
>   Delete FILE(s) if --remove (-u) is specified.  The default is not to remove
>   the files because it is common to operate on device files like /dev/hda,
>   and those files usually should not be removed.  When operating on regular
>   files, most people use the --remove option.
>
>   CAUTION: Note that shred relies on a very important assumption:
>   that the filesystem overwrites data in place.  This is the traditional
>   way to do things, but many modern filesystem designs do not satisfy this
>   assumption.  The following are examples of filesystems on which shred is
>   not effective:
>
>   * log-structured or journaled filesystems, such as those supplied with
>     AIX and Solaris (and JFS, ReiserFS, XFS, etc.)
>
>   * filesystems that write redundant data and carry on even if some writes
>     fail, such as RAID-based filesystems
>
>   * filesystems that make snapshots, such as Network Appliance's NFS server
>
>   * filesystems that cache in temporary locations, such as NFS
>     version 3 clients
>
>   * compressed filesystems
>
>   Report bugs to <address@hidden>.
>   ---------------------------------------------------------------------
>
> Changes between 4.0 and 4.1
> ===========================
>
> There have been many portability fixes and changes to adapt to and take
> advantages of advances in newer versions of autoconf and automake.
>
> There have been many bug fixes and a few new features/options:
> (for the full list, see the `NEWS' and ChangeLog files)
>
> * dd conv=sync,block now pads only with spaces, per POSIX
> * ls's -1 option no longer cancels the effect of a preceding -l
> * ls: When given two or more arguments but the only one that exists is a
>     directory, don't treat it as if it were the only argument.  Before,
>     `mkdir d; ls no-dir d 2>/dev/null' would act like `ls d' and produce
>     no output.  Now, it prints `d:'.
> * touch -d 'last friday' would use a time stamp that was one hour off
>     (e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
>     when run such that the current time and the target date/time fall on
>     opposite sides of a daylight savings time transition.
>     This problem arises only with relative date strings like `last monday'.
>     It is not a problem with strings that include absolute dates.
> * Using ls's short-named `-H' option evokes the warning that the
>    meaning of `-H' will soon change.  Use `--si' instead.
> * Using cp's short-named `-P' option evokes the warning that the
>    meaning of `-P' will soon change.  Use `--parents' instead.
> * ls --full-time now implies -l;  before, without -l it was a no-op
> * attempting to use mv to move a symlink onto itself no longer removes
>     the symlink
> * The manual now warns that ls's --full-time format string is planned
>     to change in a future release.
> * ls -l's time stamp format now depends on LC_TIME, not LC_MESSAGES,
>     as POSIX requires.
> * ls -l now reports the year for files even slightly in the future, as
>     POSIX requires.  This helps warn users about clock skew problems.
> * `cp -d file symlink-to-some-other-file' no longer fails
> * performance improvements for ls
> * the chown and chgrp programs preserve set-uid and set-gid bits, even on
>     systems for which the chown function call resets those bits.
> * `ls -L dangling-symlink' now fails (per POSIX) rather than printing the
>     link name
> * `mkdir no-such-dir/' no longer fails on NetBSD systems
> * dd (without conv=notrunc) now complains only when ftruncate fails on a
>     regular file, a directory, or a shared memory object -- not when it fails
>     to truncate other types of files, like /dev/fd0.
> * mkdir now gives one diagnostic (rather than two) for certain failures
> * touch now interprets a lone numeric argument of 8 or 10 digits as a file 
> name,
>   rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
> * ls is much more efficient on systems (e.g., linux-2.4.*) that store file
>     type information in directory entries.
> * shred now automatically determines the size of each block device argument
> * ls's date/time format strings are now locale dependent
> * mkdir, mknod, mkfifo, and chmod work better in conjunction with ACLs
> * `cp --parents dir1/ dir2' no longer gets a failed assertion
> * `shred --exact file1 file2' now erases `file1', too
> * mv no longer gets a failed assertion when moving a directory (specified with
>     a trailing slash) from one partition to another, and giving it a different
>     name at the destination.
> * mv's --force (-f) option now controls solely whether mv prompts (per POSIX)
> * `cp -f' now first attempts to open an existing destination file, and only
>     if that fails does it resort to unlinking the file and retrying the open.
>     Before, it would unlink the file before trying to open it.
> * cp accepts a new option, --remove-destination, that provides the old 
> behavior
> * cp's -f option no longer cancels the effect of --interactive (-i) (per 
> POSIX)
> * when ls sorts directory entries, it now honors the current locale settings
> * dd's `skip=BLOCKS' operator once again works on systems with a buggy lseek
>   function (Linux, at least on SCSI tape devices)
> * cp now accepts the POSIX-mandated -H and -L options.
> * cp -p and mv now try to preserve uid even if you're not root, as per 
> POSIX.2.
>   This affects behavior only on hosts that let you give files away via chmod.
> * du would fail when given `.' or `..' followed by other command line 
> arguments
> * chgrp, chmod, and chown: when used with the --verbose option, might give an
>   invalid diagnostic (due to clobbered errno) when failing.
> * When `cp -pR' fails to copy a file, it now preserves permissions, owner,
>    and group of the containing directory.
> * df, du, and ls now round disk usage up and disk free space down
> * df, du, ls: --block-size=N now works for values of N that are e.g.,
>     not a multiple of the file's block size
> * give proper diagnostic for mv usage error
> * `cp -d -u' no longer fails with certain existing destination symlinks
> * rmdir and mkdir accept -v as synonym for --verbose
> * rm no longer segfaults on certain very deep hierarchies
> * IMPORTANT SECURITY FIX: a running `rm -r' may no longer be subverted to
>   remove unintended directories
> * cp can now remove unwritable files in interactive mode; contrary to how mv
>    works, cp's --interactive (-i) option does *not* cancel the effect of a
>    preceding --force (-f) option.
> * all programs fail when printing --help or --version output to a full device
> * install no longer performs chmod if chown fails (see ChangeLog for example)
> * `du dir/subdir1 dir/subdir2' no longer fails
> * cp and mv accept new option: --strip-trailing-slashes
> * chown accepts new option: --from=CURRENT_OWNER:CURRENT_GROUP
> * install --directory (-d) may now be used to set special bits
>     e.g., `install -m a=rwx,o+t -d DIR' now honors the `o+t' part
> * cp, mv, ln, install: document that while the --backup option takes an
>   optional argument, the -b option accepts none
> * `ls -e' fails with a more useful diagnostic
> * df produces better output for loop file system mount points
> * install -D bug is fixed
> * chown now works properly when the specified login name contains a period
>   This is at the expense of always looking up the entire USER.GROUP string
>   as a login name first, and only then (upon failure) interpreting the `.'
>   as a separator and looking up `USER'.  To avoid the extra getpwnam call,
>   always use the POSIX-mandated `:' character as the separator.
> * `du some-other-dir' no longer fails if it can't open the current directory
> * `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE.  Now it gets an 
> error
>   as POSIX says it must.
> * touch no longer hangs on fifos
> * various tools: quote multibyte characters correctly in diagnostics
> * cp, install, ln, and mv: when making backup files in verbose mode, these
>   commands now print the backup file name on the same line as the rest of the
>   information, e.g., `a -> b (backup: b.~13~)' rather than on a separate line
>   as all but ln used to do.  ln didn't output the backup file name at all.
> * df no longer hangs when there is an inaccessible mount point unrelated to 
> PATH
> * rmdir --verbose no longer prints extra, bogus diagnosic upon failure
> * ls -l honors a trailing slash on a symlink argument, per POSIX.
> * shred no longer appears to infloop when asked to remove files in
>   unwritable directories
> * `ls -ul' and `ls -uc' sort by name once again, as they should
> * touch would fail with the misleading diagnostic `no such file' when asked
>   to create a file in an unwritable directory.  Now it says something like
>   `permission denied' or `read-only file system'.
> * mkdir may now be used to set special bits  e.g., `mkdir -m o+t dir' works
> * touch can now change the time(s) of a file you own even if you don't have
>   read or write access to it
> * rm no longer dumps core after warning about directory cycles
> * mv now refuses to move a file onto a symlink to itself when that symlink
>   is on a separate partition.  Before, it would remove the file and leave
>   only the symlink.
> * `install -d -g foo 1/2' now sets the `group' of the final component as well
>   as that of the leading one.
> * df, du, and ls no longer divide by zero when an invalid block size is
>   specified through an environment variable
> * under certain conditions, chgrp would fail to affect files referenced
>   through symlinks.  Now it does.
> * ln now makes hard links to symlinks on systems that support it.
> * touch: no longer infloop on dangling symlinks
> * cp, install, ln, mv: deprecate the --version-control option.  Use --backup's
>   new optional argument instead.  The old option still works, but now evokes a
>   warning.
> * cp, install, ln, mv: the --backup option now accepts an optional argument
> * cp, install, ln, mv: accept new option: --target-directory=DIR
> * chgrp: accept new option, --dereference.  --no-dereference is now the 
> default.
> * New ls options:
>   --quoting-style=locale acts like --quoting-style=c, except
>     with locale-specific quoting symbols (` and ' by default) instead of ".
>   --quoting-style=clocale acts like --quoting-style=locale,
>     except that it quotes "like this" by default instead of `like this'.
> * `df DIR' is less likely to hang due to bad NFS mounts
> * As per POSIX.2, `df -P' now uses ceiling rather than rounding, and its
>   header now says `1024-blocks ... Capacity' instead of `1k-blocks ... Use%'.
> * `cp -f FILE FILE' and `mv -f FILE FILE' no longer remove FILE
> * touch works once again (DST-wise) when certain `--date DATE-TIME'
>   values are specified.
> * shred's -u option (short form of --remove) is now accepted
> * cp --one-file-system (-x) no longer crosses filesystem boundaries.
> * touch can once again operate on directories
> * New large-file support for AIX and HP-UX, and for cross-compiles.
> * shred's default options are now suitable for devices, not files, since
>   shred is more reliable on devices.  shred now does not remove by default;
>   the old -p or --preserve option was inverted and renamed to -u or --remove.
> * shred -u now attempts to truncate devices before removing them.
> * shred -v no longer outputs carriage-returns; shred -vv has no extra effect;
>   shred -v now outputs to stderr.
> * shred now tries to find the size of a non-regular file by seeking to its 
> end.
> * dd now opens the output file for *read* access only if `seek=' is used.
> * `ls --color' no longer segfaults
> * dd works once again
> * shred --devices option renamed to -D so that -d, -i and -r can be
>   compatible with rm.
> * shred -s/--size=N option added to specify the size of the object to be
>   shredded.
> * `shred -' now shreds stdout rather than stdin.  This is incompatible with 
> -v.
> * shred now does not need to read from its output file, so opens it O_WRONLY
> * `ls -l' uses `+' to designate each file that has a custom ACL
> * eliminate race condition that could make touch truncate a nonempty file
> * No longer use *_unlocked I/O macros on systems (like solaris5.5.1) where
>   they're not declared, so selected executables (e.g., rm) that are linked
>   with shared libraries will once again run on solaris5.6 systems.
> * ls recognizes solaris 2 `doors'
> * cp, mv, install: --verbose now prints a message for each backup-related
>   renaming
> * concurrent `mkdir -p' processes no longer fail when creating the
>   same hierarchy
> * argmatch.c has been fixed so that the unambiguous usage `ls --color=n'
>   no longer evokes an error.
> * ls --quoting-style=c prints correct octal escapes for certain nonprinting
>   characters in file names.
> * fix `ls -R .' formatting bug that broke mktexlsr
> * moving a directory into itself is properly diagnosed in more cases
> * moving a directory containing hard-linked files now works
>
> _______________________________________________
> GNU Announcement mailing list <address@hidden>
> http://mail.gnu.org/mailman/listinfo/info-gnu
>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]