New options: --owner-map and --group-map.

* NEWS: Update.
* doc/tar.1: Document --owner-map and --group-map
* doc/tar.texi: Likewise.

* src/map.c: New file.
* src/Makefile.am: Add map.c
* src/common.h (owner_map_read, owner_map_translate)
(group_map_read, group_map_translate): New protos.
* src/create.c (start_header): Use owner_map_translate
and group_map_translate to optionally translate user/group names/ids.
* src/tar.c: New options --owner-map and --group-map.

* tests/map.at: New file.
* tests/Makefile.am: Add map.at
* tests/testsuite.at: Include map.at.
This commit is contained in:
Sergey Poznyakoff
2015-11-02 12:51:19 +02:00
parent cdf41c383f
commit 1a615a41f5
11 changed files with 550 additions and 16 deletions

20
NEWS
View File

@@ -1,4 +1,4 @@
GNU tar NEWS - User visible changes. 2015-08-03
GNU tar NEWS - User visible changes. 2015-11-02
Please send GNU tar bug reports to <bug-tar@gnu.org>
@@ -22,6 +22,24 @@ This option affects all --files-from options that occur after it in
the command line. Its effect is reverted by the
--no-verbatim-files-from option.
* New options: --owner-map=FILE and --group-map=FILE
These two options provide fine-grained control over what user/group
names (or IDs) should be mapped when adding files to archive.
For both options, FILE is a plain text file with user or group
mappings. Empty lines are ignored. Comments are introduced with
# sign (unless quoted) and extend to the end of the corresponding
line. Each non-empty line defines translation for a single UID (GID).
It must consist of two fields, delimited by any amount of whitespace:
OLDNAME NEWNAME[:NEWID]
OLDNAME is either a valid user (group) name or a ID prefixed with +. Unless
NEWID is supplied, NEWNAME must also be either a valid name or a
+ID. Otherwise, both NEWNAME and NEWID need not be listed in the
system user database.
* --null option reads file names verbatim
The --null option implies --verbatim-files-from. I.e. each line