Documentation on writersfix
December 14, 1992
NeXT Computer, Inc.

As documented in a recent CERT Advisory, the presence of an _writers property in certain NetInfo directories can open security holes in your system and network.  This shell script, writersfix, can assist system and network administrators in their efforts to close these holes.  The script allows one to examine and, optionally, remove the _writers properties in a NetInfo directory and all immediate subdirectories.  It can operate on one domain, or recursively on a domain and all domains below it in the NetInfo domain hierarchy.

writersfix's syntax is:

writersfix [-s] [-R] [-remove] [-d directory] [domain]

Invoking writersfix with the -help flag produces the following additional information:

	-s	Silent
	-R	Recurse through NetInfo domain hierarchy
	-remove	Remove _writers (default is just show)
	-d directory	Directory to check (default: /printers)
	domain	Domain to check (default: /)
The specified directory and its immediate subdirectories are checked.
If -R is used, the domain must be specified as a full path, not a
relative domain name.

Here's what the various arguments mean.

-s	Normally, writersfix reports on its findings an operations be writing messages to stdout.  With -s, it runs silently, reporting only through its exit status (see below).
-R	By default, writersfix operates only on the specified NetInfo domain.  With -R, it operates recursively, on the entire domain hierarchy beginning with and continuing beneath the specified domain.  If recursive operation is used, the domain, below, must be specified using a full path (e.g., /support), rather than a relative path (e.g., . and ..).
-remove	Instructs writersfix to remove _writers properties found.
-d directory	Operate on the specified NetInfo directory.  The default directory is /printers.
domain	Perform specified functions in the indicated NetInfo domain.  The default domain is / (the root domain).

The exit status is set to reflect the operation of writersfix, as follows:

0	No errors occurred, and no -writers properties were found.
2	Syntax error in invocation.
3	An invalid domain name was used (for example, a relative domain name with recursive operation).
4	A NetInfo error occurred during operation (e.g., a domain could not be contacted).
5	One or more _writers properties was found.

Exit status 1 is not used to simplify differentiating between shell-generated errors and errors the script itself generates.

To install writersfix, rename writersfix.sh to writersfix, and turn on execute permission as you deem appropriate.

This description corresponds to Revision 1.5 (93/01/20 13:11:24) of writersfix.  The checksum of Revision 1.5 (output of the sum(1) command) is 59977 6.