tcpio(1) tcpio(1)
NAME
tcpio - trusted import/export archiving
SYNOPSIS
tcpio -o[aLvVx] [-C bufsize] [-M message]] -O output-file
[-X low_level,high_level]
tcpio -i[bdfkPrsStuvVx] [-C bufsize] [-E file] -I file [-M message]
[-N level] [-nnum] [-R ID] [-T file]
[-X low_level,high_level] [pattern . . .]
DESCRIPTION
The -i and -o options select the action to be performed. The
following list describes each of the actions (which are
mutually exclusive).
tcpio -o
(copy out) reads the standard input to obtain a list of
pathnames and copies those files, together with
pathname and status information, onto the file or
device specified with the -O option. The data is
preceded by MAC and DAC security-related information
saved to enable validation of the data when it is read
back in. For executable files, file privileges (if
any) are also saved.
tcpio -i
(copy in) extracts files from the archive file or
device specified by the -I option, which is assumed to
be the product of a previous tcpio -o. Only files with
names that match patterns are selected. patterns are
regular expressions given in the filename-generating
notation of sh(1). In patterns, meta-characters ?, *,
and [ . . . ] match the slash (/) character, and
backslash (\) is an escape character. A ! meta-
character means not. (For example, the !abc* pattern
would exclude all files that begin with abc.) Multiple
patterns may be specified and if no patterns are
specified, the default for patterns is * (that is,
select all files). When tcpio is invoked from the
shell, each pattern should be quoted; otherwise the
pattern may be expanded.
Extracted files are conditionally created based upon
the options described below.
Copyright 1994 Novell, Inc. Page 1
tcpio(1) tcpio(1)
Before a file is extracted, the user, group,
classification, category and level identifiers (IDs) it
references are validated. If any of the identifiers
has been deleted from the system, or changed in any way
(and is not remapped to a valid identifier), the file
will not be extracted.
For users without privileges, the permissions of the
files will be the same as those at the time of the
previous tcpio -o except the bits set in the user's
umask will be cleared. The owner and group of these
files will be those of the current user. For users
with the appropriate privileges, the permissions,
owner, and group of the files will be the same as those
at the time of the previous tcpio -o.
The modification time and access time of a restored
file is set to the modification time of the file when
it was backed up. In the case of regular directories
and MLDs, modification time and access time are updated
to the current time as files are restored within the
directory.
Executable files which have privileges when they were
backed up are restored without privileges. The
privileges associated with the file when it was backed
up can be displayed using the -t or -v options. It is
up to the administrator to assign appropriate
privileges to the restored files.
NOTE: If tcpio -i tries to create a file that already
exists and the existing file is the same age or newer,
tcpio will output a warning message and not replace the
file. (The -u option can be used to unconditionally
overwrite the existing file.)
The meanings of the available options are
-a Reset access times of input files after they have been
copied.
-b Reverse the order of the bytes within each word.
-C bufsize
Input/output is to be blocked bufsize bytes to the
record, where bufsize is replaced by a positive
Copyright 1994 Novell, Inc. Page 2
tcpio(1) tcpio(1)
integer. The default buffer size is device dependent
when this option is not used.
-d Directories are to be created as needed.
-E file
Specify an input file (file) that contains a list of
filenames to be extracted from the archive (one
filename per line).
-f Copy in all files except those in patterns. (See the
paragraph on tcpio -i for a description of patterns.)
-I file
Read the contents of file as input. If file is a
character special device, when the first medium is full
replace the medium and press RETURN to continue to the
next medium.
-k Attempt to skip corrupted file headers and I/O errors
that may be encountered. If you want to copy files
from a medium that is corrupted or out of sequence,
this option lets you read only those files with good
headers. (For tcpio archives that contain other tcpio
archives, if an error is encountered tcpio may
terminate prematurely. tcpio will find the next good
header, which may be one for a smaller archive, and
terminate when the smaller archive's trailer is
encountered.)
-L Follow symbolic links. The default is not to follow
symbolic links.
Note that when tcpio is used in conjunction with find,
if the -L option is used with tcpio then the -follow
option must be used with find. Otherwise, undesirable
results will occur.
-M message
Define a message to use when switching media. When you
use the -O or -I options and specify a character
special device, you can use this option to define the
message that is printed when you reach the end of the
medium. One %d can be placed in message to print the
sequence number of the next medium needed to continue.
Copyright 1994 Novell, Inc. Page 3
tcpio(1) tcpio(1)
-nnum Disable the validation of one or more identifiers (type
or item). The permissible values of num are:
1 Disable comparison of original system name to the
current system.
2 Disable all checks of UIDs.
3 Disable all checks of GIDs.
4 Disable all checks of LID existence.
5 Disable all checks of LID state (LIDs must be
valid, but can be in the inactive state).
Any combination of the above is valid. For example,
-n2 -n3 would disable the checks of UIDs and GIDs.
-N level
Extract all files and assign them the MAC level level.
A LID, alias or fully qualified level name may be used
to specify level. It must be defined on the system and
within the medium level range.
-O file
Direct the output of tcpio to file. If file is a
character special device, when the first medium is full
replace the medium and press RETURN to continue to the
next medium.
-P Print the level range of an existing archive. No files
are created. If -X was not specified when the archive
was created, a message is printed stating that the
archive range is unbounded.
-r Interactively rename files. If the user types a null
line, the file is skipped. If the user types a ``.''
the original pathname will be copied.
-R ID Reassign ownership and group information for each file
to user ID (ID must be a valid user ID from
/etc/passwd). The group ID assigned is the group ID in
/etc/passwd associated with the user ID, ID.
Copyright 1994 Novell, Inc. Page 4
tcpio(1) tcpio(1)
-s Swap bytes within each half word.
-S Swap halfwords within each word.
-t Print a table of contents of the input, consisting of
names and file privileges (if any). When used with the
-v option, privileges are omitted and other file
information is displayed. No files are created.
-T file
Use the contents of file to remap invalid identifiers
to valid ones. The structure of file (called Tcpio
Table Of Content Translation Table or TTOCTT) is as
follows (the fields separated by whitespace):
_______________________________________________________________
| Type Specifier| Saved Numeric/Text ID| New Numeric/Text ID|
|_______________|_______________________|______________________|
The meanings of these fields are as follows:
Type Specifier is one of:
UI User ID
GI Group ID
LI Level ID
Numeric ID is the decimal representation of an
ID.
Text ID is the text name of an ID.
Saved designates IDs saved on the medium. New
designates IDs valid on the current system.
-u Copy unconditionally (normally, an older file will not
replace a newer file with the same name).
-v Verbose: causes a list of file names to be printed.
When used with the -t option, the table of contents
looks like the output of an ls -l command, with each
file's level identifier (LID) appended to the other
file information [see ls(1)]. Otherwise, for files
which had associated privileges on backup, privilege
lists are displayed along with file names.
Copyright 1994 Novell, Inc. Page 5
tcpio(1) tcpio(1)
-V Special Verbose: print a dot for each file seen.
Useful to assure the user that tcpio is working without
printing out all file names.
-x Quiet mode. Suppresses the printing of all warning
messages.
-X low_level,high_level
Extract only files with MAC level between low_level and
high_level, inclusive. high_level must dominate
low_level. LIDs, aliases, or fully qualified level
names may be used to specify low_level and high_level.
Only valid names or aliases may be used; a LID may be
used even if it has been deleted.
NOTE: tcpio assumes four-byte words.
If tcpio reaches end of medium (end of a diskette for
example), when writing to (-o) or reading from (-i) a
character special device, and -O and -I aren't used, tcpio
will print the message:
If you want to go on, type device/file name when ready.
To continue, you must replace the medium and type the
character special device name (/dev/rdiskette for example) and
press RETURN. You may want to continue by directing tcpio to
use a different device. For example, if you have two floppy
drives you may want to switch between them so tcpio can
proceed while you are changing the floppies. (Pressing RETURN
alone causes the tcpio process to exit.)
EXAMPLES
The following examples show some possible ways to use tcpio.
When standard input is directed through a pipe to tcpio -o,
files are grouped so they can be directed to a single file
(../newfile) specified with the -O option.
(Instead of ls, find(1), echo(1), and cat(1)-could also be
used to pipe a list of names to tcpio.) You could direct the
output to a device instead of a file.
ls | tcpio -o -O ../ newfile
Copyright 1994 Novell, Inc. Page 6
tcpio(1) tcpio(1)
tcpio -i uses the output file of tcpio -o (specified with the
-I option in the example), extracts those files that match the
patterns (memo/a1, memo/b*), creates directories below the
current directory as needed (-d option), and places the files
in the appropriate directories. If no patterns were given,
all files from newfile would be placed in the directory.
tcpio -idI newfile "memo/a1" "memo/b*"
tcpio -iN Secret extracts all files at level Secret while the
-X LessSecret,VerySecret directive imposes a limit on the
level of the files extracted. No file with level lower than
LessSecret or higher than VerySecret will be extracted. The
-I option specifies the input device, in this example
/dev/tape1. The -d options says to create directories as
needed. (It is important to use the -depth option of find(1)
to generate pathnames for tcpio. This eliminates problems
tcpio could have trying to create files under read-only
directories.)
tcpio -idI /dev/tape1 -N Secret -X LessSecret,VerySecret
Note that when you use tcpio in conjunction with find, if you
use the -L option with tcpio then you must use the -follow
option with find and vice versa. Otherwise there will be
undesirable results.
REFERENCES
ar(1), archives(4), cat(1), cpio(1), echo(1), find(1), ls(1),
rtcpio(1M), tar(1)
NOTICES
tcpio and cpio archives are incompatible with one another.
Pathnames are restricted to 256 characters for the binary (the
default) and -H odc formats; otherwise, pathnames are
restricted to 1024 characters.
Only a privileged user can copy special files.
Blocks are reported in 512-byte quantities.
If a file has 000 permissions and contains more than 0
characters of data, and the user does not have appropriate
privilege, the file will not be saved or restored.
Copyright 1994 Novell, Inc. Page 7
tcpio(1) tcpio(1)
Prior to Release 4, the default buffer size was 512 bytes.
Beginning with Release 4, the default buffer size is optimized
for the device and using the -C option to specify a different
block size may cause cpio to fail. Therefore, care must be
taken when choosing the block size. For example, for floppy
disks, bufsize must be a multiple of
512 (one floppy sector). To avoid wasting space on streaming
tape drives, use the -C option with an appropriate block size.
FILES
/etc/passwd
/etc/group
/etc/security/mac/lid.internal
/etc/security/mac/hist.lid.del
Copyright 1994 Novell, Inc. Page 8