man Pages(4): File Formats
Cover
Preface

Preface

OVERVIEW
A man page is provided for both the naive user, and sophisticated user who is familiar with the SunOS operating system and is in need of on-line information. A man page is intended to answer concisely the question "What does it do?" The man pages in general comprise a reference manual. They are not intended to be a tutorial.
The following contains a brief description of each section in the man pages and the information it references:
Section 1 describes, in alphabetical order, commands available with the
operating system.
Section 1M describes, in alphabetical order, commands that are used chiefly
for system maintenance and administration purposes.
Section 2 describes all of the system calls. Most of these calls have one or
more error returns. An error condition is indicated by an otherwise impossible returned value.
Section 3 describes functions found in various libraries, other than those
functions that directly invoke UNIX system primitives, which are described in Section 2 of this volume.
i
Section 4 outlines the formats of various files. The C structure declarations
for the file formats are given where applicable.
Section 5 contains miscellaneous documentation such as character set tables,
etc.
Section 7 describes various special files that refer to specific hardware
peripherals, and device drivers. STREAMS software drivers, modules and the STREAMS -genericset of system calls are also described.
Section 9 provides reference information needed to write device drivers in
the kernel operating systems environment. It describes two device driver interface specifications: the Device Driver Interface (DDI) and the Driver-Kernel Interface (DKI).
Section 9E describes the DDI/DKI, DDI-only, and DKI-only entry-point
routines a developer may include in a device driver.
Section 9F describes the kernel functions available for use by device drivers.
Section 9S describes the data structures used by drivers to share
information between the driver and the kernel.
Below is a generic format for man pages. The man pages of each manual section generally follow this order, but include only needed headings. For example, if there are no bugs to report, there is no BUGS section. See the intro pages for more information and detail about each section, and man (1)for more information about man pages in general.
NAME
This section gives the names of the commands or functions documented, followed by a brief description of what they do.
SYNOPSIS
This section shows the syntax of commands or functions. When a command or file does not exist in the standard path, its full pathname is shown. Literal characters (commands and options) are in bold font and variables (arguments, parameters and substitution characters) are in italic font. Options and arguments are alphabetized, with single letter arguments first, and options with arguments next, unless a different argument order is required.
ii
The following special characters are used in this section:
[ ]
The option or argument enclosed in these brackets is optional. If the brackets are omitted, the argument must be specified.
. . .
Ellipses. Several values may be provided for the previous argument, or the previous argument can be specified multiple times, for example, `filename . . .'.
|
Separator. Only one of the arguments separated by this character can be specified at time.
PROTOCOL
This section occurs only in subsection 3R to indicate the protocol description file. The protocol specification pathname is always listed in bold font.
AVAILABILITY
This section briefly states any limitations on the availabilty of the command. These limitations could be hardware or software specific.
A specification of a class of hardware platform, such as x86 or SPARC, denotes that the command or interface is applicable for the hardware platform specified.
In Section 1 and Section 1M, AVAILABILITY indicates which package contains the command being described on the manual page. In order to use the command, the specified package must have been installed with the operating system. If the package was not installed, see pkgadd (1)for information on how to upgrade.
MT-LEVEL
This section lists the MT-LEVEL of the library functions described in the Section 3 manual pages. The MT-LEVEL defines the libraries' ability to support threads. See Intro(3) for more information.
DESCRIPTION
This section defines the functionality and behavior of the service. Thus it describes concisely what the command does. It does not discuss OPTIONS or cite EXAMPLES. Interactive commands, subcommands, requests, macros, functions and such, are described under USAGE.
Preface
iii
IOCTLS
This section appears on pages in Section 7 only. Only the device class which supplies appropriate parameters to the ioctls(2) system call is called ioctls and generates its own heading. IOCTLS for a specific device are listed alphabetically (on the man page for that specific device). IOCTLS are used for a particular class of devices all which have an io ending, such as mtio(7).
OPTIONS
This lists the command options with a concise summary of what each option does. The options are listed literally and in the order they appear in the SYNOPSIS section. Possible arguments to options are discussed under the option, and where appropriate, default values are supplied.
RETURN VALUES
If the man page documents functions that return values, this section lists these values and describes the conditions under which they are returned. If a function can return only constant values, such as 0 or -1, these values are listed in tagged paragraphs. Otherwise, a single paragraph describes the return values of each function. Functions declared as void do not return values, so they are not discussed in RETURN VALUES.
ERRORS
On failure, most functions place an error code in the global variable errno indicating why they failed. This section lists alphabetically all error codes a function can generate and describes the conditions that cause each error. When more than one condition can cause the same error, each condition is described in a separate paragraph under the error code.
USAGE
This section is provided as a guidance on use. This section lists special rules, features and commands that require in-depth explanations. The subsections listed below are used to explain built-in functionality:
                                     Commands
                                     Modifiers
                                     Variables
                                     Expressions
                                     Input Grammar
iv
EXAMPLES
This section provides examples of usage or of how to use a command or function. Wherever possible a complete example including command line entry and machine response is shown. Whenever an example is given, the prompt is shown as
example%
or if the user must be super-user,
example#
Examples are followed by explanations, variable substitution rules, or returned values. Most examples illustrate concepts from the SYNOPSIS, DESCRIPTION, OPTIONS and USAGE sections.
ENVIRONMENT
This section lists any environment variables that the command or function affects, followed by a brief description of the effect.
FILES
This section lists all filenames referred to by the man page, files of interest, and files created or required by commands. Each is followed by a descriptive summary or explanation.
SEE ALSO
This section lists references to other man pages, in-house documentation and outside publications.
DIAGNOSTICS
This section lists diagnostic messages with a brief explanation of the condition causing the error. Messages appear in bold font with the exception of variables, which are in italic font.
WARNINGS
This section lists warnings about special conditions which could seriously affect your working conditions -- this is not a list of diagnostics.
Preface
v
NOTES
This section lists additional information that does not belong anywhere else on the page. It takes the form of an aside to the user, covering points of special interest. Critical information is never covered here.
BUGS
This section describes known bugs and wherever possible suggests workarounds.

vi
intro(4)

NAME

Intro, intro - introduction to file formats

DESCRIPTION

This section outlines the formats of various files. The C structure declarations for the file formats are given where applicable. Usually, the headers containing these structure declarations can be found in the directories /usr/include or /usr/include/sys. For inclusion in C language programs, however, the syntax #include <filename.h> or #include <sys/filename.h> should be used.
Because the operating system now allows the existence of multiple file system types, there are several instances of multiple manual pages with the same name. These pages all display the name of the FSType to which they pertain in the form name_ fstype at the top of the page. For example, fs_ufs(4)
Name              Appears on Page        Description
/proc
proc (4)
process file system
.environ          environ(4)             user-preference variables files for AT&T
                                         FACE
.ott              ott(4)                 FACE object architecture information
.pref             environ(4)             user-preference variables files for AT&T
                                         FACE
.rhosts           hosts.equiv(4)         trusted remote hosts and users
.variables        environ(4)             user-preference variables files for AT&T
                                         FACE
a.out             a.out (4)              Executable and Linking Format (ELF) files
acct              acct(4)                per-process accounting file format
addresses         aliases(4)             addresses and aliases for sendmail
admin             admin(4)               installation defaults file
aliases           aliases(4)             addresses and aliases for sendmail
ar                ar(4)                  archive file format
archives          archives(4)            device header
asetenv           asetenv(4)             ASET environment file
asetmasters       asetmasters(4)         ASET master files
audit.log         audit.log(4)           audit trail file
audit_class       audit_class(4)         audit class definitions
audit_control     audit_control(4)       control information for system audit daemon
audit_data        audit_data(4)          current information on audit daemon
audit_event       audit_event(4)         audit event definition and class mapping
audit_user        audit_user(4)          per-user auditing data file
bootparams        bootparams(4)          boot parameter data base
cdtoc             cdtoc(4)               CD-ROM table of contents file
cklist.high       asetmasters(4)         ASET master files
cklist.low        asetmasters(4)         ASET master files
cklist.med        asetmasters(4)         ASET master files
clustertoc        clustertoc(4)          cluster table of contents description file
compver           compver(4)             compatible versions file
copyright         copyright(4)           copyright information file
core              core(4)                core image file
default_fs        default_fs(4)          specify the default file system type for
                                         local or remote file systems
depend            depend(4)              software dependencies file
device.cfinfo      device.cfinfo(4)        devconfig configuration files
device_allocate   device_allocate(4)     device_allocate file
device_maps       device_maps(4)         device_maps file
dfstab            dfstab(4)              file containing commands for sharing
                                         resources across a network
dir               dir_ufs(4)             format of ufs directories
dir_ufs           dir_ufs(4)             format of ufs directories
dirent            dirent(4)              file system independent directory entry
driver.conf       driver.conf(4)         driver configuration files
dumpdates         ufsdump(4)             incremental dump format
eisa              sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
environ           environ(4)             user-preference variables files for AT&T
                                         FACE
ethers            ethers(4)              Ethernet address to hostname database or
                                         domain
fbtab             logindevperm(4)        login-based device permissions
fd                fd (4)                 file descriptor files
filehdr            filehdr(4)              file header for common object files
format.dat        format.dat (4)         disk drive configuration for the format
                                         command.
forward           aliases(4)             addresses and aliases for sendmail
fs                default_fs(4)          specify the default file system type for
                                         local or remote file systems
fs_ufs            fs_ufs(4)              format of a ufs file system volume
fspec             fspec(4)               format specification in text files
fstypes           fstypes(4)             file that registers distributed file system
                                         packages
group             group(4)               group file
holidays          holidays(4)            prime/nonprime table for the accounting
                                         system
hosts.equiv       hosts.equiv(4)         trusted remote hosts and users
hosts             hosts(4)               host name database
inetd.conf        inetd.conf(4)          Internet servers database
init.d            init.d(4)              initialization and termination scripts for
                                         changing init states
inittab           inittab(4)             script for init
inode             fs_ufs(4)              format of a ufs file system volume
inode_ufs         fs_ufs(4)              format of a ufs file system volume
isa
sysbus(4)
configuration files for ISA, EISA, and MCA
bus device drivers
issue             issue(4)               issue identification file
keytables         keytables(4)           keyboard table descriptions for loadkeys and
                                         dumpkeys
krb.conf          krb.conf(4)            Kerberos configuration file
krb.realms        krb.realms(4)          host to Kerberos realm translation file
limits            limits(4)              header for implementation-specific constants
loadfont          loadfont(4)            format of a font file used as input to the
                                         loadfont utility
logindevperm      logindevperm(4)        login-based device permissions
loginlog          loginlog(4)            log of failed login attempts
magic             magic(4)               file command's magic number file
mca               sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
mnttab            mnttab(4)              mounted file system table
netconfig          netconfig(4)            network configuration database
netgroup          netgroup(4)            list of network groups
netid             netid(4)               netname database
netmasks          netmasks(4)            network mask database
netrc             netrc(4)               file for ftp remote login data
networks          networks(4)            network name database
nisfiles           nisfiles(4)             NIS+ database files and directory structure
nsswitch.conf     nsswitch.conf(4)       configuration file for the name-service
                                         switch
order             order(4)               package installation order description file
ott               ott(4)                 FACE object architecture information
packagetoc        packagetoc(4)          package table of contents description file
passwd            passwd(4)              password file
path_to_inst      path_to_inst(4)        device instance number file
pathalias         pathalias(4)           alias file for FACE
phones            phones(4)              remote host phone number database
pkginfo           pkginfo(4)             package characteristics file
pkgmap            pkgmap(4)              package contents description file
plot              plot(4B)               graphics interface
pref              environ(4)             user-preference variables files for AT&T
                                         FACE
proc              proc (4)               process file system
profile            profile (4)             setting up an environment for user at login
                                         time
protocols         protocols(4)           protocol name database
prototype         prototype(4)           package information file
pseudo            pseudo(4)              configuration files for pseudo device
                                         drivers
publickey         publickey(4)           public key database
queuedefs
queuedefs(4)
queue description file for at, batch, and
cron
remote            remote(4)              remote host description file
resolv.conf       resolv.conf(4)         configuration file for name server routines
rhosts            hosts.equiv(4)         trusted remote hosts and users
rmmount.conf      rmmount.conf(4)        removable media mounter configuration file
rmtab             rmtab(4)               remote mounted file system table
routing           routing(4)             system support for packet network routing
rpc               rpc(4)                 rpc program number data base
rpld.conf         rpld.conf(4)           Remote Program Load (RPL) server
                                         configuration file
rt_dptbl          rt_dptbl(4)            real-time dispatcher parameter table
sbus              sbus(4)                configuration files for SBus device drivers
sccsfile           sccsfile(4)             format of an SCCS history file
scsi              scsi(4)                configuration files for SCSI target drivers
services          services(4)            Internet services and aliases
shadow            shadow(4)              shadow password file
sharetab          sharetab(4)            shared file system table
space             space(4)               disk space requirement file
strftime          strftime(4)            language specific strings
sysbus            sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
syslog.conf       syslog.conf(4)         configuration file for syslogd system log
                                         daemon
system            system(4)              system configuration information file
term              term(4)                format of compiled term file
terminfo          terminfo (4)           terminal capability database
TIMEZONE          TIMEZONE(4)            set default system time zone and locale
timezone          timezone(4)            default timezone data base
ts_dptbl          ts_dptbl(4)            time-sharing dispatcher parameter table
ttydefs           ttydefs(4)             file contains terminal line settings
                                         information for ttymon
ttysrch           ttysrch(4)             directory search list for ttyname
tune.high         asetmasters(4)         ASET master files
tune.low          asetmasters(4)         ASET master files
tune.med          asetmasters(4)         ASET master files
ufsdump           ufsdump(4)             incremental dump format
uid_aliases       asetmasters(4)         ASET master files
unistd            unistd(4)              header for symbolic constants
updaters          updaters(4)            configuration file for NIS updating
utmp              utmp(4)                utmp and wtmp entry formats
utmpx             utmpx(4)               utmpx and wtmpx entry formats
variables         environ(4)             user-preference variables files for AT&T
                                         FACE
vfstab            vfstab(4)              table of file system defaults
vme
vme(4)
configuration files for VMEbus device
drivers
vold.conf         vold.conf(4)           Volume Management configuration file
wtmp              utmp(4)                utmp and wtmp entry formats
wtmpx             utmpx(4)               utmpx and wtmpx entry formats
ypfiles            ypfiles(4)              Network Information Service Version 2,
                                         formerly knows as YP
Intro(4)

NAME

Intro, intro - introduction to file formats

DESCRIPTION

This section outlines the formats of various files. The C structure declarations for the file formats are given where applicable. Usually, the headers containing these structure declarations can be found in the directories /usr/include or /usr/include/sys. For inclusion in C language programs, however, the syntax #include <filename.h> or #include <sys/filename.h> should be used.
Because the operating system now allows the existence of multiple file system types, there are several instances of multiple manual pages with the same name. These pages all display the name of the FSType to which they pertain in the form name_ fstype at the top of the page. For example, fs_ufs(4)
Name              Appears on Page        Description
/proc
proc (4)
process file system
.environ          environ(4)             user-preference variables files for AT&T
                                         FACE
.ott              ott(4)                 FACE object architecture information
.pref             environ(4)             user-preference variables files for AT&T
                                         FACE
.rhosts           hosts.equiv(4)         trusted remote hosts and users
.variables        environ(4)             user-preference variables files for AT&T
                                         FACE
a.out             a.out (4)              Executable and Linking Format (ELF) files
acct              acct(4)                per-process accounting file format
addresses         aliases(4)             addresses and aliases for sendmail
admin             admin(4)               installation defaults file
aliases           aliases(4)             addresses and aliases for sendmail
ar                ar(4)                  archive file format
archives          archives(4)            device header
asetenv           asetenv(4)             ASET environment file
asetmasters       asetmasters(4)         ASET master files
audit.log         audit.log(4)           audit trail file
audit_class       audit_class(4)         audit class definitions
audit_control     audit_control(4)       control information for system audit daemon
audit_data        audit_data(4)          current information on audit daemon
audit_event       audit_event(4)         audit event definition and class mapping
audit_user        audit_user(4)          per-user auditing data file
bootparams        bootparams(4)          boot parameter data base
cdtoc             cdtoc(4)               CD-ROM table of contents file
cklist.high       asetmasters(4)         ASET master files
cklist.low        asetmasters(4)         ASET master files
cklist.med        asetmasters(4)         ASET master files
clustertoc        clustertoc(4)          cluster table of contents description file
compver           compver(4)             compatible versions file
copyright         copyright(4)           copyright information file
core              core(4)                core image file
default_fs        default_fs(4)          specify the default file system type for
                                         local or remote file systems
depend            depend(4)              software dependencies file
device.cfinfo      device.cfinfo(4)        devconfig configuration files
device_allocate   device_allocate(4)     device_allocate file
device_maps       device_maps(4)         device_maps file
dfstab            dfstab(4)              file containing commands for sharing
                                         resources across a network
dir               dir_ufs(4)             format of ufs directories
dir_ufs           dir_ufs(4)             format of ufs directories
dirent            dirent(4)              file system independent directory entry
driver.conf       driver.conf(4)         driver configuration files
dumpdates         ufsdump(4)             incremental dump format
eisa              sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
environ           environ(4)             user-preference variables files for AT&T
                                         FACE
ethers            ethers(4)              Ethernet address to hostname database or
                                         domain
fbtab             logindevperm(4)        login-based device permissions
fd                fd (4)                 file descriptor files
filehdr            filehdr(4)              file header for common object files
format.dat        format.dat (4)         disk drive configuration for the format
                                         command.
forward           aliases(4)             addresses and aliases for sendmail
fs                default_fs(4)          specify the default file system type for
                                         local or remote file systems
fs_ufs            fs_ufs(4)              format of a ufs file system volume
fspec             fspec(4)               format specification in text files
fstypes           fstypes(4)             file that registers distributed file system
                                         packages
group             group(4)               group file
holidays          holidays(4)            prime/nonprime table for the accounting
                                         system
hosts.equiv       hosts.equiv(4)         trusted remote hosts and users
hosts             hosts(4)               host name database
inetd.conf        inetd.conf(4)          Internet servers database
init.d            init.d(4)              initialization and termination scripts for
                                         changing init states
inittab           inittab(4)             script for init
inode             fs_ufs(4)              format of a ufs file system volume
inode_ufs         fs_ufs(4)              format of a ufs file system volume
isa
sysbus(4)
configuration files for ISA, EISA, and MCA
bus device drivers
issue             issue(4)               issue identification file
keytables         keytables(4)           keyboard table descriptions for loadkeys and
                                         dumpkeys
krb.conf          krb.conf(4)            Kerberos configuration file
krb.realms        krb.realms(4)          host to Kerberos realm translation file
limits            limits(4)              header for implementation-specific constants
loadfont          loadfont(4)            format of a font file used as input to the
                                         loadfont utility
logindevperm      logindevperm(4)        login-based device permissions
loginlog          loginlog(4)            log of failed login attempts
magic             magic(4)               file command's magic number file
mca               sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
mnttab            mnttab(4)              mounted file system table
netconfig          netconfig(4)            network configuration database
netgroup          netgroup(4)            list of network groups
netid             netid(4)               netname database
netmasks          netmasks(4)            network mask database
netrc             netrc(4)               file for ftp remote login data
networks          networks(4)            network name database
nisfiles           nisfiles(4)             NIS+ database files and directory structure
nsswitch.conf     nsswitch.conf(4)       configuration file for the name-service
                                         switch
order             order(4)               package installation order description file
ott               ott(4)                 FACE object architecture information
packagetoc        packagetoc(4)          package table of contents description file
passwd            passwd(4)              password file
path_to_inst      path_to_inst(4)        device instance number file
pathalias         pathalias(4)           alias file for FACE
phones            phones(4)              remote host phone number database
pkginfo           pkginfo(4)             package characteristics file
pkgmap            pkgmap(4)              package contents description file
plot              plot(4B)               graphics interface
pref              environ(4)             user-preference variables files for AT&T
                                         FACE
proc              proc (4)               process file system
profile            profile (4)             setting up an environment for user at login
                                         time
protocols         protocols(4)           protocol name database
prototype         prototype(4)           package information file
pseudo            pseudo(4)              configuration files for pseudo device
                                         drivers
publickey         publickey(4)           public key database
queuedefs
queuedefs(4)
queue description file for at, batch, and
cron
remote            remote(4)              remote host description file
resolv.conf       resolv.conf(4)         configuration file for name server routines
rhosts            hosts.equiv(4)         trusted remote hosts and users
rmmount.conf      rmmount.conf(4)        removable media mounter configuration file
rmtab             rmtab(4)               remote mounted file system table
routing           routing(4)             system support for packet network routing
rpc               rpc(4)                 rpc program number data base
rpld.conf         rpld.conf(4)           Remote Program Load (RPL) server
                                         configuration file
rt_dptbl          rt_dptbl(4)            real-time dispatcher parameter table
sbus              sbus(4)                configuration files for SBus device drivers
sccsfile           sccsfile(4)             format of an SCCS history file
scsi              scsi(4)                configuration files for SCSI target drivers
services          services(4)            Internet services and aliases
shadow            shadow(4)              shadow password file
sharetab          sharetab(4)            shared file system table
space             space(4)               disk space requirement file
strftime          strftime(4)            language specific strings
sysbus            sysbus(4)              configuration files for ISA, EISA, and MCA
                                         bus device drivers
syslog.conf       syslog.conf(4)         configuration file for syslogd system log
                                         daemon
system            system(4)              system configuration information file
term              term(4)                format of compiled term file
terminfo          terminfo (4)           terminal capability database
TIMEZONE          TIMEZONE(4)            set default system time zone and locale
timezone          timezone(4)            default timezone data base
ts_dptbl          ts_dptbl(4)            time-sharing dispatcher parameter table
ttydefs           ttydefs(4)             file contains terminal line settings
                                         information for ttymon
ttysrch           ttysrch(4)             directory search list for ttyname
tune.high         asetmasters(4)         ASET master files
tune.low          asetmasters(4)         ASET master files
tune.med          asetmasters(4)         ASET master files
ufsdump           ufsdump(4)             incremental dump format
uid_aliases       asetmasters(4)         ASET master files
unistd            unistd(4)              header for symbolic constants
updaters          updaters(4)            configuration file for NIS updating
utmp              utmp(4)                utmp and wtmp entry formats
utmpx             utmpx(4)               utmpx and wtmpx entry formats
variables         environ(4)             user-preference variables files for AT&T
                                         FACE
vfstab            vfstab(4)              table of file system defaults
vme
vme(4)
configuration files for VMEbus device
drivers
vold.conf         vold.conf(4)           Volume Management configuration file
wtmp              utmp(4)                utmp and wtmp entry formats
wtmpx             utmpx(4)               utmpx and wtmpx entry formats
ypfiles            ypfiles(4)              Network Information Service Version 2,
                                         formerly knows as YP
TIMEZONE(4)

NAME

TIMEZONE - set default system time zone and locale

SYNOPSIS

/etc/TIMEZONE
/etc/default/init

DESCRIPTION

This file sets the time zone environment variable TZ, and the locale-related environment variables LANG, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME .
/etc/TIMEZONE is a symbolic link to /etc/default/init.
The number of environments that can be set from /etc/default/init is limited to 20.

SEE ALSO

init(1M), ctime(3C), environ(5)
a.out(4)

NAME

a.out - Executable and Linking Format (ELF) files

SYNOPSIS

#include <elf.h>

DESCRIPTION

The file name a.out is the default output file name from the link editor, ld(1). The link editor will make an a.out executable if there were no errors in linking. The output file of the assembler, as(1), also follows the format of the a.out file although its default file name is different.
Programs that manipulate ELF files may use the library that elf(3E) describes. An overview of the file format follows. For more complete information, see the references given below.
Linking View
Execution View

      ELF header  
  Program header table  
        optional  
       Section 1  
          . . .  
       Section n  
          . . .  
          . . .  
  Section header table  

       ELF header  
  Program header table  
       Segment 1  
       Segment 2  
          . . .  
   Section header table  
        optional  
An ELF header resides at the beginning and holds a ``road map'' describing the file's organization. Sections hold the bulk of object file information for the linking view: instructions, data, symbol table, relocation information, and so on. Segments hold the object file information for the program execution view. As shown, a segment may contain one or more sections.
A program header table, if present, tells the system how to create a process image. Files used to build a process image (execute a program) must have a program header table; relocatable files do not need one. A section header table contains information describing the file's sections. Every section has an entry in the table; each entry gives information such as the section name, the section size, etc. Files used during linking must have a section header table; other object files may or may not have one.
Although the figure shows the program header table immediately after the ELF header, and the section header table following the sections, actual files may differ. Moreover, sections and segments have no specified order. Only the ELF header has a fixed position in the file.
When an a.out file is loaded into memory for execution, three logical segments are set up: the text segment, the data segment (initialized data followed by uninitialized, the latter actually being initialized to all 0's), and a stack. The text segment is not writable by the program; if other processes are executing the same a.out file, the processes will share a single text segment.
The data segment starts at the next maximal page boundary past the last text address. If the system supports more than one page size, the ``maximal page'' is the largest supported size. When the process image is created, the part of the file holding the end of text and the beginning of data may appear twice. The duplicated chunk of text that appears at the beginning of data is never executed; it is duplicated so that the operating system may bring in pieces of the file in multiples of the actual page size without having to realign the beginning of the data section to a page boundary. Therefore, the first data address is the sum of the next maximal page boundary past the end of text plus the remainder of the last text address divided by the maximal page size. If the last text address is a multiple of the maximal page size, no duplication is necessary. The stack is automatically extended as required. The data segment is extended as requested by the brk(2) system call.

SEE ALSO

as(1), cc(1B), ld(1), brk(2), elf(3E)
ANSI C Programmer's Guide
acct(4)

NAME

acct - per-process accounting file format

SYNOPSIS

#include <sys/types.h>
#include <sys/acct.h>

DESCRIPTION

Files produced as a result of calling acct(2) have records in the form defined by <sys/acct.h>, whose contents are:
typedef ushort comp_t;          /* pseudo "floating point" representation * /
                                /* 3 bit base-8 exponent in the high * /
                                /* order bits, and a 13-bit fraction * /
                                /* in the low order bits. * /
struct
acct
{
        char    ac_flag;        /* Accounting flag * /
        char    ac_stat;       /* Exit status * /
        uid_t   ac_uid;        /* Accounting user ID * /
        gid_t   ac_gid;        /* Accounting group ID * /
        dev_t   ac_tty;        /* control tty * /
        time_t  ac_btime;      /* Beginning time * /
        comp_t ac_utime;       /* accounting user time in clock * /
                                /* ticks * /
        comp_t ac_stime;       /* accounting system time in clock * /
                                /* ticks * /
        comp_t ac_etime;       /* accounting total elapsed time in clock * /
                                /* ticks * /
        comp_t ac_mem;         /* memory usage in clicks (pages) * /
        comp_t ac_io;          /* chars transferred by read/write * /
        comp_t ac_rw;          /* number of block reads/writes * /
        char    ac_comm[8]; /* command name * /
};
/*
* Accounting Flags
* /
#define AFORK 01                 /* has executed fork, but no exec * /
#define ASU        02            /* used super-user privileges * /
#define ACCTF      0300          /* record type * /
#define AEXPND 040               /* Expanded Record Type - default * /
In ac_flag, the AFORK flag is turned on by each fork and turned off by an exec. The ac_comm field is inherited from the parent process and is reset by any exec. Each time the system charges the process with a clock tick, it also adds to ac_mem the current process size, computed as follows:
(data size) + (text size) / (number of in-core processes using text)
The value of ac_mem / (ac_stime + ac_utime) can be viewed as an approximation to the mean process size, as modified by text sharing.
The structure tacct, (which resides with the source files of the accounting commands), represents a summary of accounting statistics for the user id ta_uid. This structure is used by the accounting commands to report statistics based on user id.
/**
** total accounting (for acct period), also for day
** /
struct
tacct {
       uid_t           ta_uid;        /* user id * /
       char            ta_name[8];    /* login name * /
       float            ta_cpu[2];     /* cum. cpu time in minutes, * /
                                      /* p/np (prime/non-prime time) * /
       float            ta_kcore[2];   /* cum. kcore-minutes, p/np * /
       float            ta_con[2];     /* cum. connect time in minutes, * /
                                      /* p/np * /
       float            ta_du;         /* cum. disk usage (blocks)* /
       long            ta_pc;         /* count of processes * /
       unsigned short ta_sc;          /* count of login sessions * /
       unsigned short ta_dc;          /* count of disk samples * /
       unsigned short ta_fee;         /* fee for special services * /
};
ta_cpu, ta_kcore, and ta_con contain usage information pertaining to prime time and non-prime time hours. The first element in each array represents the time the resource was used during prime time hours. The second element in each array represents the time the resource was used during non-prime time hours. Prime time and non-prime time hours may be set in the holidays file (see holidays(4)).
ta_kcore is a cumulative measure of the amount of memory used over the accounting period by processes owned by the user with uid ta_uid. The amount shown represents kilobyte segments of memory used, per minute.
ta_con represents the amount of time the user was logged in to the system.

FILES

/etc/acct/holidays
prime/non-prime time table

SEE ALSO

acctcom(1), acct(1M), acctcon(1M), acctmerg(1M), acctprc(1M), acctsh(1M), prtacct(1M), runacct(1M), shutacct(1M), acct(2), exec(2), fork(2)

NOTES

The ac_mem value for a short-lived command gives little information about the actual size of the command, because ac_mem may be incremented while a different command (for example, the shell) is being executed by the process.
addresses(4)

NAME

aliases, addresses, forward - addresses and aliases for sendmail

SYNOPSIS

/etc/mail/aliases
/etc/mail/aliases.dir
/etc/mail/aliases.pag
~/.forward

DESCRIPTION

These files contain mail addresses or aliases, recognized by sendmail(1M) for the local host:
/etc/passwd
Mail addresses (usernames) of local users.
/etc/aliases
Aliases for the local host, in ASCII format. This file can be edited to add, update, or delete local mail aliases.
/etc/aliases. { dir , pag}
The aliasing information from /etc/aliases, in binary, dbm format for use by sendmail(1M). The program newaliases(1), which is
..
invoked automatically by sendmail(1M), maintains these files.
/.forward
Addresses to which a user's mail is forwarded (see Automatic Forwarding, below).
In addition, the YP name services aliases map mail.aliases contains addresses and aliases available for use across the network.

Addresses

As distributed, sendmail(1M) supports the following types of addresses:

Local Usernames

username
Each local username is listed in the local host's /etc/passwd file.

Local Filenames

pathname
Messages addressed to the absolute pathname of a file are appended to that file.

Commands

|command
If the first character of the address is a vertical bar, ( | ), sendmail(1M) pipes the message to the standard input of the command the bar precedes.

DARPA-standard

username@domain

Addresses

If domain does not contain any `. ' (dots), then it is interpreted as the name of a host in the current domain. Otherwise, the message is passed to a mailhost that determines how to get to the specified domain. Domains are divided into subdomains separated by dots, with the top-level domain on the right. Top-level domains include:
.COM
Commercial organizations.
.EDU
Educational organizations.
.GOV
Government organizations.
.MIL
Military organizations.
For example, the full address of John Smith could be:
js@jsmachine.Podunk-U.EDU
if he uses the machine named jsmachine at Podunk University.

uucp Addresses

. . . [host!]host!username
These are sometimes mistakenly referred to as ``Usenet'' addresses. uucp(1C) provides links to numerous sites throughout the world for the remote copying of files.
Other site-specific forms of addressing can be added by customizing the sendmail.cf configuration file. See sendmail(1M) for details. Standard addresses are recommended.

Aliases Local Aliases

/etc/aliases is formatted as a series of lines of the form
aliasname : address,[address ]
aliasname is the name of the alias or alias group, and address is the address of a recipient in the group. Aliases can be nested. That is, an address can be the name of another alias group. Because of the way sendmail(1M) performs mapping from upper-case to lowercase, an address that is the name of another alias group must not contain any upper-case letters.
Lines beginning with white space are treated as continuation lines for the preceding alias. Lines beginning with # are comments.

Special Aliases

An alias of the form:
owner-aliasname : address
directs error-messages resulting from mail to aliasname to address ,instead of back to the person who sent the message.
An alias of the form:
aliasname ::include:pathname
with colons as shown, adds the recipients listed in the file pathname to the aliasname alias. This allows a private list to be maintained separately from the aliases file.

YP Domain Aliases

Normally, the aliases file on the master YP server is used for the mail.aliases YP map, which can be made available to every YP client. Thus, the /etc/mail/aliases** files on the various hosts in a network will one day be obsolete. Domain-wide aliases should ultimately be resolved into usernames on specific hosts. For example, if the following were in the domain-wide alias file:
jsmith:js@jsmachine
then any YP client could just mail to jsmith and not have to remember the machine and username for John Smith. If a YP alias does not resolve to an address with a specific host, then the name of the YP domain is used. There should be an alias of the domain name for a host in this case.
For example, the alias:
        jsmith:root
sends mail on a YP client to root@podunk-u if the name of the YP domain is podunk-u.

Automatic Forwarding

When an alias (or address) is resolved to the name of a user on the local host, .. sendmail(1M) checks for a
/.forward file, owned by the intended recipient, in that user's
home directory, and with universal read access. This file can contain one or more addresses or aliases as described above, each of which is sent a copy of the user's mail.
Care must be taken to avoid creating addressing loops in the ../.forward file. When forwarding mail between machines, be sure that the destination machine does not return the mail to the sender through the operation of any YP aliases. Otherwise, copies of the message may ``bounce.'' Usually, the solution is to change the YP alias to direct mail to the proper destination.
A backslash before a username inhibits further aliasing. For instance, to invoke the vaca-.. tion program, user js creates a
/.forward file that contains the line:
\js, "|/usr/ucb/vacation js"
so that one copy of the message is sent to the user, and another is piped into the vacation program.

FILES

/etc/passwd
/etc/mail/aliases
/etc/mail/sendmail.cf
..
 /.forward

SEE ALSO

vacation(1), newaliases(1), uucp(1C), sendmail(1M), dbm(3B)

NOTES

Because of restrictions in dbm(3B), a single alias cannot contain more than about 1000 characters. Nested aliases can be used to circumvent this limit.
admin(4)

NAME

admin - installation defaults file

DESCRIPTION

admin is a generic name for an ASCII file that defines default installation actions by assigning values to installation parameters. For example, it allows administrators to define how to proceed when the package being installed already exists on the system.
/var/sadm/install/admin/default is the default admin file delivered with this release. The default file is not writable, so to assign values different from this file, create a new admin file. There are no naming restrictions for admin files. Name the file when installing a package with the --a option of pkgadd (1M). If the --a option is not used, the default admin file is used.
Each entry in the admin file is a line that establishes the value of a parameter in the following form:
param=value
Eleven parameters can be defined in an admin file. A file is not required to assign values to all eleven parameters. If a value is not assigned, pkgadd asks the installer how to proceed.
The eleven parameters and their possible values are shown below except as noted. They may be specified in any order. Any of these parameters can be assigned the value ask, which means that if the situation occurs the installer is notified and asked to supply instructions at that time.
basedir
Indicates the base directory where relocatable packages are to be installed. If none is specified the installer is prompted with a path, with the default being BASEDIR specified in the pkginfo file. The value default can be used as an option. pkgadd recognizes this setting and installs the package into <pkginfo BASEDIR>. The valued may contain $PKGINST to indicate a base directory that is to be a function of the package instance.
mail
Defines a list of users to whom mail should be sent following installation of a package. If the list is empty, no mail is sent. If the parameter is not present in the admin file, the default value of root is used. The ask value cannot be used with this parameter.
runlevel
Indicates resolution if the run level is not correct for the installation or removal of a package. Options are:
nocheck
Do not check for run level.
quit
Abort installation if run level is not met.
conflict
Specifies what to do if an installation expects to overwrite a previously installed file, thus creating a conflict between packages. Options are:
nocheck
Do not check for conflict; files in conflict will be
overwritten.
quit
Abort installation if conflict is detected.
nochange
Override installation of conflicting files; they will not
be installed.
setuid
Checks for executables which will have setuid or setgid bits enabled after installation. Options are:
nocheck
Do not check for setuid executables.
quit
Abort installation if setuid processes are detected.
nochange
Override installation of setuid processes; processes
will be installed without setuid bits enabled.
action
Determines if action scripts provided by package developers contain possible security impact. Options are:
nocheck
Ignore security impact of action scripts.
quit
Abort installation if action scripts may have a nega-
tive security impact.
partial
Checks to see if a version of the package is already partially installed on the system. Options are:
nocheck
Do not check for a partially installed package.
quit
Abort installation if a partially installed package
exists.
instance
Determines how to handle installation if a previous version of the package (including a partially installed instance) already exists. Options are:
quit
Exit without installing if an instance of the package
already exists (does not overwrite existing packages).
overwrite
Overwrite an existing package if only one instance
exists. If there is more than one instance, but only
one has the same architecture, it overwrites that
instance. Otherwise, the installer is prompted with
existing instances and asked which to overwrite.
unique
Do not overwrite an existing instance of a package.
Instead, a new instance of the package is created.
The new instance will be assigned the next available
instance identifier.
idepend
Controls resolution if other packages depend on the one to be installed. Options are:
nocheck
Do not check package dependencies.
quit
Abort installation if package dependencies are not
met.
rdepend
Controls resolution if other packages depend on the one to be removed. Options are:
nocheck
Do not check package dependencies.
quit
Abort removal if package dependencies are not met.
space
Controls resolution if disk space requirements for package are not met. Options are:
nocheck
Do not check space requirements (installation fails if
it runs out of space).
quit
Abort installation if space requirements are not met.

EXAMPLES

Below is a sample admin file.
basedir=default
runlevel=quit
conflict=quit
setuid=quit
action=quit
partial=quit
instance=unique
idepend=quit
rdepend=quit
space=quit

SEE ALSO

pkgadd (1M)

NOTES

The value ask should not be defined in an admin file that will be used for non-interactive installation (since by definition, there is no installer interaction). Doing so causes installation to fail when input is needed.
aliases(4)

NAME

aliases, addresses, forward - addresses and aliases for sendmail

SYNOPSIS

/etc/mail/aliases
/etc/mail/aliases.dir
/etc/mail/aliases.pag
~/.forward

DESCRIPTION

These files contain mail addresses or aliases, recognized by sendmail(1M) for the local host:
/etc/passwd
Mail addresses (usernames) of local users.
/etc/aliases
Aliases for the local host, in ASCII format. This file can be edited to add, update, or delete local mail aliases.
/etc/aliases. { dir , pag}
The aliasing information from /etc/aliases, in binary, dbm format for use by sendmail(1M). The program newaliases(1), which is
..
invoked automatically by sendmail(1M), maintains these files.
/.forward
Addresses to which a user's mail is forwarded (see Automatic Forwarding, below).
In addition, the YP name services aliases map mail.aliases contains addresses and aliases available for use across the network.

Addresses

As distributed, sendmail(1M) supports the following types of addresses:

Local Usernames

username
Each local username is listed in the local host's /etc/passwd file.

Local Filenames

pathname
Messages addressed to the absolute pathname of a file are appended to that file.

Commands

|command
If the first character of the address is a vertical bar, ( | ), sendmail(1M) pipes the message to the standard input of the command the bar precedes.

DARPA-standard

username@domain

Addresses

If domain does not contain any `. ' (dots), then it is interpreted as the name of a host in the current domain. Otherwise, the message is passed to a mailhost that determines how to get to the specified domain. Domains are divided into subdomains separated by dots, with the top-level domain on the right. Top-level domains include:
.COM
Commercial organizations.
.EDU
Educational organizations.
.GOV
Government organizations.
.MIL
Military organizations.
For example, the full address of John Smith could be:
js@jsmachine.Podunk-U.EDU
if he uses the machine named jsmachine at Podunk University.

uucp Addresses

. . . [host!]host!username
These are sometimes mistakenly referred to as ``Usenet'' addresses. uucp(1C) provides links to numerous sites throughout the world for the remote copying of files.
Other site-specific forms of addressing can be added by customizing the sendmail.cf configuration file. See sendmail(1M) for details. Standard addresses are recommended.

Aliases Local Aliases

/etc/aliases is formatted as a series of lines of the form
aliasname : address,[address ]
aliasname is the name of the alias or alias group, and address is the address of a recipient in the group. Aliases can be nested. That is, an address can be the name of another alias group. Because of the way sendmail(1M) performs mapping from upper-case to lowercase, an address that is the name of another alias group must not contain any upper-case letters.
Lines beginning with white space are treated as continuation lines for the preceding alias. Lines beginning with # are comments.

Special Aliases

An alias of the form:
owner-aliasname : address
directs error-messages resulting from mail to aliasname to address ,instead of back to the person who sent the message.
An alias of the form:
aliasname ::include:pathname
with colons as shown, adds the recipients listed in the file pathname to the aliasname alias. This allows a private list to be maintained separately from the aliases file.

YP Domain Aliases

Normally, the aliases file on the master YP server is used for the mail.aliases YP map, which can be made available to every YP client. Thus, the /etc/mail/aliases** files on the various hosts in a network will one day be obsolete. Domain-wide aliases should ultimately be resolved into usernames on specific hosts. For example, if the following were in the domain-wide alias file:
jsmith:js@jsmachine
then any YP client could just mail to jsmith and not have to remember the machine and username for John Smith. If a YP alias does not resolve to an address with a specific host, then the name of the YP domain is used. There should be an alias of the domain name for a host in this case.
For example, the alias:
        jsmith:root
sends mail on a YP client to root@podunk-u if the name of the YP domain is podunk-u.

Automatic Forwarding

When an alias (or address) is resolved to the name of a user on the local host, .. sendmail(1M) checks for a
/.forward file, owned by the intended recipient, in that user's
home directory, and with universal read access. This file can contain one or more addresses or aliases as described above, each of which is sent a copy of the user's mail.
Care must be taken to avoid creating addressing loops in the ../.forward file. When forwarding mail between machines, be sure that the destination machine does not return the mail to the sender through the operation of any YP aliases. Otherwise, copies of the message may ``bounce.'' Usually, the solution is to change the YP alias to direct mail to the proper destination.
A backslash before a username inhibits further aliasing. For instance, to invoke the vaca-.. tion program, user js creates a
/.forward file that contains the line:
\js, "|/usr/ucb/vacation js"
so that one copy of the message is sent to the user, and another is piped into the vacation program.

FILES

/etc/passwd
/etc/mail/aliases
/etc/mail/sendmail.cf
..
 /.forward

SEE ALSO

vacation(1), newaliases(1), uucp(1C), sendmail(1M), dbm(3B)

NOTES

Because of restrictions in dbm(3B), a single alias cannot contain more than about 1000 characters. Nested aliases can be used to circumvent this limit.
ar(4)

NAME

ar - archive file format

SYNOPSIS

#include <ar.h>

DESCRIPTION

The archive command ar is used to combine several files into one. Archives are used mainly as libraries to be searched by the link editor ld.
Each archive begins with the archive magic string.
#define ARMAG "!<arch>\n"              /* magic string * /
#define SARMAG 8                       /* length of magic string * /
Following the archive magic string are the archive file members. Each file member is preceded by a file member header which is of the following format:
#define ARFMAG       "`\n"       /* header trailer string * /
struct ar_hdr
/* file member header * /
{
  char  ar_name[16];           /* '/' terminated file member name * /
  char  ar_date[12];           /* file member date * /
  char  ar_uid[6];             /* file member user identification * /
  char  ar_gid[6];             /* file member group identification * /
  char  ar_mode[8];            /* file member mode (octal) * /
  char  ar_size[10];           /* file member size * /
  char  ar_fmag[2];            /* header trailer string * /
};
All information in the file member headers is in printable ASCII. The numeric information contained in the headers is stored as decimal numbers (except for ar_mode which is in octal). Thus, if the archive contains printable files, the archive itself is printable.
If the file member name fits, the ar_name field contains the name directly, and is terminated by a slash (/) and padded with blanks on the right. If the member's name does not fit, ar_name contains a slash (/) followed by a decimal representation of the name's offset in the archive string table described below.
The ar_date field is the modification date of the file at the time of its insertion into the archive. Common format archives can be moved from system to system as long as the portable archive command ar is used.
Each archive file member begins on an even byte boundary; a newline is inserted between files if necessary. Nevertheless, the size given reflects the actual size of the file exclusive of padding.
Notice there is no provision for empty areas in an archive file.
Each archive that contains object files (see a.out (4))includes an archive symbol table. This symbol table is used by the link editor ld to determine which archive members must be loaded during the link edit process. The archive symbol table (if it exists) is always the first file in the archive (but is never listed) and is automatically created and/or updated by ar.
The archive symbol table has a zero length name (that is, ar_name[0] is '/'), ar_name[1]==' ', etc.). All ``words'' in this symbol table have four bytes, using the machine-independent encoding shown below. All machines use the encoding described here for the symbol table, even if the machine's ``natural'' byte order is different.
01
2
3
01
02
03
04
0x01020304
The contents of this file are as follows:
  1. The number of symbols. Length: 4 bytes.

  2. The array of offsets into the archive file. Length: 4 bytes * ``the number of symbols''.

  3. The name string table. Length: ar_size - 4 bytes * (``the number of symbols'' + 1).

As an example, the following symbol table defines 4 symbols. The archive member at file offset 114 defines name and object. The archive member at file offset 426 defines and a second version of name.

Example Symbol Table

Offset
+0
+1
+2
+3

4
114
114
426
426


name
\0obj
ect\0
func
tion
\0nam
e\0

  0                            4 offset entries
  4                            name
  8                            object
 12                            function
 16                            name
 20
24
28
32
36
40
44
The string table contains exactly as many null terminated strings as there are elements in the offsets array. Each offset from the array is associated with the corresponding name from the string table (in order). The names in the string table are all the defined global symbols found in the common object files in the archive. Each offset is the location of the archive header for the associated symbol.
If some archive member's name is more than 15 bytes long, a special archive member contains a table of file names, each followed by a slash and a new-line. This string table member, if present, will precede all ``normal'' archive members. The special archive symbol table is not a ``normal'' member, and must be first if it exists. The ar_name entry of the string table's member header holds a zero length name ar_name[0]=='/', followed by one trailing slash (ar_name[1]=='/'), followed by blanks (ar_name[2]==' ', etc.). Offsets into the string table begin at zero. Example ar_name values for short and long file names appear below.
Offset
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
0
file_name_
sample/\nlo
ngerfilena
mexample/\n
10
20
30
Member Name
ar_name
short-nameshort-name/Not in string table
file_name_sample/0Offset 0 in string table
longerfilenamexample/18Offset 18 in string table

SEE ALSO

ar(1), ld(1), strip(1), a.out (4)

NOTES

strip will remove all archive symbol entries from the header. The archive symbol entries must be restored via the -ts options of the ar command before the archive can be used with the link editor ld.
archives(4)

NAME

archives - device header

DESCRIPTION

/* Magic numbers * /
#define CMN_ASC 0x070701       /* Cpio Magic Number for -c header * /
#define CMN_BIN 070707         /* Cpio Magic Number for Binary header * /
#define CMN_BBS 0143561        /* Cpio Magic Number for Byte-Swap header * /
#define CMN_CRC 0x070702       /* Cpio Magic Number for CRC header * /
#define CMS_ASC "070701"       /* Cpio Magic String for -c header * /
#define CMS_CHR "070707"       /* Cpio Magic String for odc header * /
#define CMS_CRC "070702"       /* Cpio Magic String for CRC header * /
#define CMS_LEN 6              /* Cpio Magic String length * /
/* Various header and field lengths * /
#define CHRSZ
76
/* -H odc size minus filename field * /
#define ASCSZ      110         /* -c and CRC hdr size minus filename field * /
#define TARSZ      512         /* TAR hdr size * /
#define HNAMLEN 256
/* maximum filename length for binary and
                              odc headers * /
#define EXPNLEN    1024        /* maximum filename length for -c and
                              CRC headers * /
#define HTIMLEN 2              /* length of modification time field * /
#define HSIZLEN    2           /* length of file size field * /
/* cpio binary header definition * /
struct hdr_cpio {
     short   h_magic,               /* magic number field * /
             h_dev;                 /* file system of file * /
     ushort  h_ino,                 /* inode of file * /
             h_mode,                /* modes of file * /
             h_uid,                 /* uid of file * /
             h_gid;                 /* gid of file * /
     short   h_nlink,               /* number of links to file * /
             h_rdev,                /* maj/min numbers for special files * /
             h_mtime[HTIMLEN],      /* modification time of file * /
             h_namesize,            /* length of filename * /
             h_filesize[HSIZLEN];    /* size of file * /
     char    h_name[HNAMLEN];       /* filename * /
} ;
/* cpio -H odc header format * /
struct c_hdr {
     char    c_magic[CMS_LEN],
             c_dev[6],
             c_ino[6],
             c_mode[6],
             c_uid[6],
             c_gid[6],
             c_nlink[6],
             c_rdev[6],
             c_mtime[11],
             c_namesz[6],
             c_filesz[11],
             c_name[HNAMLEN];
} ;
/* -c and CRC header format * /
struct Exp_cpio_hdr {
     char    E_magic[CMS_LEN],
             E_ino[8],
             E_mode[8],
             E_uid[8],
             E_gid[8],
             E_nlink[8],
             E_mtime[8],
             E_filesize[8],
             E_maj[8],
             E_min[8],
             E_rmaj[8],
             E_rmin[8],
             E_namesize[8],
             E_chksum[8],
             E_name[EXPNLEN];
} ;
/* Tar header structure and format * /
#define TBLOCK      512       /* length of tar header and data blocks * /
#define TNAMLEN 100           /* maximum length for tar file names * /
#define TMODLEN 8             /* length of mode field * /
#define TUIDLEN     8         /* length of uid field * /
#define TGIDLEN     8         /* length of gid field * /
#define TSIZLEN     12        /* length of size field * /
#define TTIMLEN     12        /* length of modification time field * /
#define TCRCLEN     8         /* length of header checksum field * /
/* tar header definition * /
union tblock {
     char dummy[TBLOCK];
     struct header {
          char t_name[TNAMLEN];              /* name of file * /
          char t_mode[TMODLEN];              /* mode of file * /
          char t_uid[TUIDLEN];               /* uid of file * /
          char t_gid[TGIDLEN];               /* gid of file * /
          char t_size[TSIZLEN];              /* size of file in bytes * /
          char t_mtime[TTIMLEN];             /* modification time of file * /
          char t_chksum[TCRCLEN];            /* checksum of header * /
          char t_typeflag;                    /* flag to indicate type of file * /
          char t_linkname[TNAMLEN];          /* file this file is linked with * /
          char t_magic[6];                   /* magic string always "ustar" * /
          char t_version[2];                 /* version strings always "00" * /
          char t_uname[32];                  /* owner of file in ASCII * /
          char t_gname[32];                  /* group of file in ASCII * /
          char t_devmajor[8];                /* major number for special files * /
          char t_devminor[8];                /* minor number for special files * /
          char t_prefix[155];                 /* pathname prefix * /
     } tbuf;
};
/* volcopy tape label format and structure * /
#define VMAGLEN8
#define VVOLLEN6
#define VFILLEN 464
struct volcopy_label {
     char v_magic[VMAGLEN],
          v_volume[VVOLLEN],
          v_reels,
          v_reel;
     long v_time,
          v_length,
          v_dens,
          v_reelblks,       /* u370 added field * /
          v_blksize,        /* u370 added field * /
          v_nblocks;        /* u370 added field * /
     char v_fill[VFILLEN];
     long v_offset;         /* used with -e and -reel options * /
     int  v_type;           /* does tape have nblocks field? * /
} ;
asetenv(4)

NAME

asetenv - ASET environment file

SYNOPSIS

/usr/aset/asetenv

DESCRIPTION

The asetenv file is located in /usr/aset, the default operating directory of the Automated Security Enhancement Tool (ASET). An alternative working directory can be specified by the administrators through the aset -d command or the ASETDIR environment variable. See aset(1M). asetenv contains definitions of environment variables for ASET.
There are 2 sections in this file. The first section is labeled User Configurable Parameters. It contains, as the label indicates, environment variables that the administrators can modify to customize ASET behavior to suit their specific needs. The second section is labeled ASET Internal Environment Variables and should not be changed. The configurable parameters are explained as follows:
TASK
This variable defines the list of tasks that aset will execute the next time it runs. The available tasks are:
tune
Tighten system files.
usrgrp
Check user/group.
sysconf
Check system configuration file.
env
Check environment.
cklist
Compare system files checklist.
eeprom
Check eeprom(1M) parameters.
firewall
Disable forwarding of IP packets.
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
These variables define the list of directories to be used by aset to create a checklist file at the low, medium, and high security levels, respectively. Attributes of all the files in the directories defined by these variables will be checked periodically and any changes will be reported by aset. Checks performed on these directories are not recursive. aset only checks directories explicitly listed in these variables and does not check subdirectories of them.
YPCHECK
This variable is a boolean parameter. It specifies whether aset should extend checking (when applicable) on system tables to their NIS equivalents or not. The value true enables it while the value false disables it.
UID_ALIASES
This variable specifies an alias file for user ID sharing. Normally, aset warns about multiple user accounts sharing the same user ID because it is not advisable for accountability reason. Exceptions can be created using an alias file. User ID sharing allowed by the alias file will not be reported by aset. See asetmasters(4) for the format of the alias file.
PERIODIC_SCHEDULE
This variable specifies the schedule for periodic execution of ASET. It uses the format of crontab(1) entries. Briefly speaking, the variable is assigned a string of the following format:
minutes hours day-of-month month day-of-week
Setting this variable does not activate the periodic schedule of ASET. To execute ASET periodically, aset(1M) must be run with the -p option. See aset(1M). For example, if PERIODIC_SCHEDULE is set to the following, and aset(1M) was started with the -p option, aset will run at 12:00 midnight every day:
0 0 * * *

EXAMPLES

The following is a sample asetenv file, showing the settings of the ASET configurable parameters:
CKLISTPATH_LOW=/etc:/
CKLISTPATH_MED=$CHECKLISTPATH_LOW:/usr/bin:/usr/ucb
CKLISTPATH_HIGH=$CHECKLISTPATH_MED:/usr/lib:/usr/sbin
YPCHECK=false
UID_ALIASES=/usr/aset/masters/uid_aliases
PERIODIC_SCHEDULE="0 0 * * * "
TASKS="env sysconf usrgrp"
When aset -p is run with this file, aset is executed at midnight of every day. The / and /etc directories are checked at the low security level; the /, /etc, /usr/bin, and /usr/ucb directories are checked at the medium security level; and the /, /etc, /usr/bin, /usr/lib, and /usr/sbin directories are checked at the high security level. Checking of NIS system files is disabled. The /usr/aset/masters/uid_aliases file specifies the used IDs available for sharing. The env, sysconf, and usrgrp tasks will be performed, checking the environment variables, various system tables, and the local passwd and group files.

SEE ALSO

crontab(1), aset(1M), asetmasters(4)
ASET Administrator Manual
asetmasters(4)

NAME

asetmasters, tune.low, tune.med, tune.high, uid_aliases, cklist.low, cklist.med, cklist.high - ASET master files

SYNOPSIS

/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
/usr/aset/masters/uid_aliases
/usr/aset/masters/cklist.low
/usr/aset/masters/cklist.med
/usr/aset/masters/cklist.high

DESCRIPTION

The /usr/aset/masters directory contains several files used by the Automated Security Enhancement Tool (ASET). /usr/aset is the default operating directory for ASET. An alternative working directory can be specified by the administrators through the aset -d command or the ASETDIR environment variable. See aset(1M).
These files are provided by default to meet the need of most environments. The administrators, however, can edit these files to meet their specific needs. The format and usage of these files are described below.
All the master files allow comments and blank lines to improve readability. Comment lines must start with a leading "#" character.
tune.low
tune.med
tune.high    These files are used by the tune task (see aset(1M)) to restrict the permis-
sion settings for system objects. Each file is used by ASET at the security level indicated by the suffix. Each entry in the files is of the form: pathname mode owner group type
where
pathname
is the full pathname
mode
is the permission setting
owner
is the owner of the object
group
is the group of the object
type
is the type of the object It can be symlink for a sym-
bolic link, directory for a directory, or file for every-
thing else.
Regular shell wildcard ("* ","?", ...) characters can be used in the pathname for multiple references. See sh(1). The mode is a five-digit number that represents the permission setting. Note that this setting represents a least restrictive value. If the current setting is already more restrictive than the specified value, ASET does not loosen the permission settings.
For example, if mode is 00777 ,the permission will not be changed, since it is always less restrictive than the current setting.
Names must be used for owner and group instead of numeric ID's. ? can be used as a "don't care" character in place of owner, group, and type to prevent ASET from changing the existing values of these parameters.
uid_alias
This file allows user ID's to be shared by multiple user accounts. Normally, ASET discourages such sharing for accountability reason and reports user ID's that are shared. The administrators can, however, define permissible sharing by adding entries to the file. Each entry is of the form:
uid=alias1=alias2=alias3= ...
where
uid
is the shared user id
alias?
is the user accounts sharing the user ID
For example, if sync and daemon share the user ID 1 ,the corresponding entry is:
                1=sync=daemon
cklist.low
cklist.med
cklist.high
These files are used by the cklist task (see aset(1M)), and are created the first time the task is run at the low, medium, and high levels. When the cklist task is run, it compares the specified directory's contents with the appropriate cklist.level file and reports any discrepancies.

EXAMPLES

The following is an example of valid entries for the tune.low, tune.med, and tune.high files:
/bin       00777      root       staff      symlink
/etc       02755      root       staff      directory
/dev/sd*   00640      root       operator   file

SEE ALSO

aset(1M), asetenv(4)
ASET Administrator Manual
audit.log(4)

NAME

audit.log - audit trail file

SYNOPSIS

#include <bsm/audit.h>
#include <bsm/audit_record.h>

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

audit.log files are the depository for audit records stored locally or on an audit server. These files are kept in directories named in the file audit_control(4). They are named to reflect the time they are created and are, when possible, renamed to reflect the time they are closed as well. The name takes the form
        yyyymmddhhmmss.not_terminated.hostname
when open or if the auditd(1M) terminated ungracefully, and the form
        yyyymmddhhmmss. yyyymmddhhmmss. hostname
when properly closed. yyyy is the year, mm the month, dd day in the month, hh hour in the day, mm minute in the hour, and ss second in the minute. All fields are of fixed width.
The audit.log file begins with a standalone file token and typically ends with one also. The beginning file token records the pathname of the previous audit file, while the ending file token records the pathname of the next audit file. If the file name is NULL the appropriate path was unavailable.
The audit.log files contains audit records. Each audit record is made up of audit tokens. Each record contains a header token followed by various data tokens. Depending on the audit policy in place by auditon(2), optional other tokens such as trailers or sequences may be included.
The tokens are defined as follows:
The file token consists of:
token ID
char
seconds of time
u_int
milliseconds of time
u_int
file name length
short
file pathname
null terminated string
The header token consists of:
token ID
char
record byte count
u_long
version #                        char     (1)
event type                       u_short
event modifier                    u_short
seconds of time                  u_int
milliseconds of time             u_int
The trailer token consists of:
token ID
char
trailer magic number
u_short
record byte count
u_long
The arbitrary data token is defined:
token ID
char
how to print
char
basic unit
char
unit count
char
data items
depends on basic unit
The in_addr token consists of:
token ID
char
internet address
long
The ip token consists of:
token ID
char
version and ihl
char
type of service
char
length
short
id
u_short
offset
u_short
ttl
char
protocol
char
checksum
u_short
source address
long
destination address
long
The iport token consists of:
token ID
char
port address
short
The opaque token consists of:
token ID
char
size
short
data
char, size chars
The path token consists of:
token ID
char
path length
short
path
null terminated string
The process token consists of:
token ID
char
auid
u_long
euid
u_long
egid
u_long
ruid
u_long
rgid
u_long
pid
u_long
sid
u_long
terminal ID
u_long (port ID)
u_long (machine ID)
The return token consists of:
token ID
char
error number
char
return value
u_int
The subject token consists of:
token ID
char
auid
u_long
euid
u_long
egid
u_long
ruid
u_long
rgid
u_long
pid
u_long
sid
u_long
terminal ID
u_long (port ID)
u_long (machine ID)
The System V IPC token consists of:
token ID
char
object ID type
char
object ID
long
The text token consists of:
token ID
char
text length
short
text
null terminated string
The attribute token consists of:
token ID
char
mode
u_long
uid
u_long
gid
u_long
file system id
long
node id
long
device
u_long
The groups token consists of:
token ID
char
number
short
group list
long, size chars
The System V IPC permission token consists of:
token ID
char
uid
u_long
gid
u_long
cuid
u_long
cgid
u_long
mode
u_long
seq
u_long
key
long
The arg token consists of:
token ID
char
argument #
char
argument value
long
string length
short
text
null terminated string
The exec_args token consists of:
token ID
char
count
short
text
count null terminated string(s)
The exec_env token consists of:
token ID
char
count
short
text
count null terminated string(s)
The exit token consists of:
token ID
char
status
long
return value
long
The socket token consists of:
token ID
char
socket type
short
local port
short
local Internet address
long
remote port
short
remote Internet address
long
The seq token consists of:
token ID
char
sequence number
long

SEE ALSO

audit(1M), auditd(1M), bsmconv(1M), audit(2), auditon(2), audit_control(4)

NOTES

Each token is generally written using the au_to (3)family of function calls.
audit_class(4)

NAME

audit_class - audit class definitions

SYNOPSIS

/etc/security/audit_class

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

/etc/security/audit_class is an ASCII system file that stores class definitions. Programs use the getauclassent(3) routines to access this information.
The fields for each class entry are separated by colons. Each class entry is a bitmap and is separated from each other by a newline.
Each entry in the audit_class file has the form:
mask: name: description
The fields are defined as follows:
mask
The class mask.
name
The class name.
description
The description of the class.
The classes are now user-configurable. Each class is represented as a bit in the class mask which is an unsigned integer. Thus, there are 32 different classes available, plus two meta-classes -- all and no.
all represents a conjunction of all allowed classes, and is provided as a shorthand method of specifying all classes.
no is the "invalid" class, and any event mapped solely to this class will not be audited. (Turning auditing on to the all meta class will NOT cause events mapped solely to the no class to be written to the audit trail.)

EXAMPLES

Here is a sample of a audit_class file:
0x00000000:no:invalid class
0x00000001:fr:file read
0x00000002:fw:file write
0x00000004:fa:file attribute access
0x00000008:fm:file attribute modify
0x00000010:fc:file create
0x00000020:fd:file delete
0x00000040:cl:file close
0xffffffff:all:all classes

FILES

/etc/security/audit_class

SEE ALSO

bsmconv(1M), getauclassent(3), audit_event(4)

NOTES

It is possible to deliberately turn on the no class in the kernel, in which case the audit trail will be flooded with records for the audit event AUE_NULL.
audit_control(4)

NAME

audit_control - control information for system audit daemon

SYNOPSIS

/etc/security/audit_control

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

The audit_control file contains audit control information used by auditd(1M). Each line consists of a title and a string, separated by a colon. There are no restrictions on the order of lines in the file, although some lines must appear only once. A line beginning with `# ' is a comment.
Directory definition lines list the directories to be used when creating audit files, in the order in which they are to be used. The format of a directory line is:
dir: directory-name
directory-name is where the audit files will be created. Any valid writable directory can be specified.
The following configuration is recommended:
/etc/security/audit/server/files
where server is the name of a central machine, since audit files belonging to different servers are usually stored in separate subdirectories of a single audit directory. The naming convention normally has server be a directory on a server machine, and all clients mount /etc/security/audit/server at the same location in their local file systems. If the same server exports several different file systems for auditing, their server names will, of course, be different.
There are several other ways for audit data to be arranged: some sites may have needs more in line with storing each host's audit data in separate subdirectories. The audit structure used will depend on each individual site.
The audit threshold line specifies the percentage of free space that must be present in the file system containing the current audit file. The format of the threshold line is:
minfree: percentage
where percentage is indicates the amount of free space required. If free space falls below this threshold, the audit daemon auditd(1M) invokes the shell script audit_warn(1M). If no threshold is specified, the default is 0%.
The audit flags line specifies the default system audit value. This value is combined with the user audit value read from audit_user(4) to form the process audit state. The user audit value overrides the system audit value. The format of a flags line is:
flags:audit-flags
where audit-flags specifies which event classes are to be audited. The character string representation of audit-flags contains a series of flag names, each one identifying a single audit class, separated by commas. A name preceded by `-' means that the class should be audited for failure only; successful attempts are not audited. A name preceded by `+' means that the class should be audited for success only; failing attempts are not audited. Without a prefix, the name indicates that the class is to be audited for both successes and failures. The special string all indicates that all events should be audited; -all indicates that all failed attempts are to be audited, and +all all successful attempts. The prefixes ^, ^-, and ^+ turn off flags specified earlier in the string (^- and ^+ for failing and successful attempts, ^ for both). They are typically used to reset flags.
The non-attributable flags line is similar to the flags line, but this one contain the audit flags that define what classes of events are audited when an action cannot be attributed to a specific user. The format of a naflags line is:
naflags: audit-flags
The flags are separated by commas, with no spaces.
The following table lists the predefined audit classes:
short name      long name       short description
no              no_class        null value for turning off event preselection
fr              file_read        Read of data, open for reading, etc.
fw              file_write       Write of data, open for writing, etc.
fa              file_attr_acc    Access of object attributes: stat, pathconf, etc.
fm              file_attr_mod    Change of object attributes: chown, flock, etc.
fc              file_creation    Creation of object
fd              file_deletion    Deletion of object
cl              file_close       close(2) system call
pc              process         Process operations: fork, exec, exit, etc.
nt              network         Network events: bind, connect, accept, etc.
ip              ipc             System V IPC operations
na              non_attrib      non-attributable events
ad              administrative administrative actions: mount, exportfs, etc.
lo              login_logout    Login and logout events
ap              application     Application auditing
io              ioctl           ioctl(2) system call
ex              exec            exec(2) system call
ot              other           Everything else
all             all             All flags set
Note that the classes are configurable, see audit_class(4).

EXAMPLES

Here is a sample /etc/security/audit_control file for the machine eggplant:
dir: /etc/security/jedgar/eggplant
dir: /etc/security/jedgar.aux/eggplant
#
# Last-ditch audit file system when jedgar fills up.
#
dir: /etc/security/global/eggplant
minfree: 20
flags: lo,ad,-all,^-fm
naflags: lo,ad
This identifies server jedgar with two file systems normally used for audit data, another server global used only when jedgar fills up or breaks, and specifies that the warning script is run when the file systems are 80% filled. It also specifies that all logins, administrative operations are to be audited (whether or not they succeed), and that failures of all types except failures to access object attributes are to be audited.

FILES

/etc/security/audit_control
/etc/security/audit_warn
/etc/security/audit/* /* /*
/etc/security/audit_user

SEE ALSO

audit(1M), auditd(1M), audit_warn(1M), bsmconv(1M), audit(2), getfauditflags(3), audit.log(4), audit_class(4), audit_user(4)
audit_data(4)

NAME

audit_data - current information on audit daemon

SYNOPSIS

/etc/security/audit_data

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

The audit_data file contains information about the audit daemon. The file contains the process ID of the audit daemon, and the pathname of the current audit log file. The format of the file is:
<pid>:<pathname>
Where pid is the process ID for the audit daemon, and pathname is the full pathname for the current audit log file.

EXAMPLES

64:/etc/security/audit/server1/19930506081249.19930506230945.bongos

FILES

/etc/security/audit_data

SEE ALSO

audit(1M), auditd(1M), bsmconv(1M), audit(2), audit.log(4)
audit_event(4)

NAME

audit_event - audit event definition and class mapping

SYNOPSIS

/etc/security/audit_event

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

/etc/security/audit_event is an ASCII system file that stores event definitions and specifies the event to class mappings. Programs use the getauevent (3)routines to access this information.
The fields for each event entry are separated by colons. Each event is separated from the next by a newline.
Each entry in the audit_event file has the form:
number: name: description: flags
The fields are defined as follows:
number
The event number.
name
The event name.
description
The description of the event.
flags
Flags specifying classes to which the event is mapped.

EXAMPLES

Here is a sample of the audit_event file entries:
7:AUE_EXEC:exec(2):pc,ex
79:AUE_OPEN_WTC:open(2) - write,creat,trunc:fc,fd,fw
6152:AUE_login:login - success or failure:lo
6153:AUE_logout:logout:lo
6154:AUE_telnet:login - through telnet:lo
6155:AUE_rlogin:login - through rlogin:lo

FILES

/etc/security/audit_event

SEE ALSO

bsmconv(1M), getauevent (3),audit_control(4)
audit_user(4)

NAME

audit_user - per-user auditing data file

SYNOPSIS

/etc/security/audit_user

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

audit_user is an access-restricted ASCII system file that stores per-user auditing preselection data. Programs use the getauusernam(3) routines to access this information.
The fields for each user entry are separated by colons. Each user is separated from the next by a newline. audit_user does not have general read permission.
Each entry in the audit_user file has the form:
username: always-audit-flags: never-audit-flags
The fields are defined as follows:
username
The user's login name.
always-audit-flags
Flags specifying event classes to always audit.
never-audit-flags
Flags specifying event classes to never audit.

EXAMPLES

Here is a sample audit_user file:
other:lo,ad:io,cl
fred:lo,ex,+fc,-fr,-fa:io,cl
ethyl:lo,ex,nt:io,cl

FILES

/etc/security/audit_user
/etc/passwd

SEE ALSO

bsmconv(1M), getauusernam(3), audit_control(4), passwd(4)
bootparams(4)

NAME

bootparams - boot parameter data base

SYNOPSIS

/etc/bootparams

DESCRIPTION

The /etc/bootparams file contains a list of client entries that diskless clients use for booting. Diskless booting clients retrieve this information by issuing requests to a server running the rpc.bootparamd (1M)program. The /etc/bootparams file may be used in conjunction with or in place of other sources for the bootparams information. See nsswitch.conf(4).
For each client the file contains an entry with the client's name and a list of boot parameter values for that client. Each entry should have the form:
clientname
identifier-pathname-specifier ...
The first item of each entry is the host name of the diskless client. This is followed by one or more whitespace characters and a series of identifier-pathname-specifiers separated by whitespace characters.
Each identifier-pathname-specifier has the form:
identifier=server: pathname
where identifier is a key that is used by diskless clients to identify a file or filesystem, server is the name of the server that will provide the file or filesystem to the diskless client, and pathname is the path to the exported file or filesystem on the specified server. The equal sign ('=') and colon (':') characters are used in the indicated positions. There should not be any whitespace within an identifier-pathname-specifier.
An entry may be split across multiple lines of the file. The backslash ('\') character should be used as the last character of a line to signify that the entry continues on the next line. The line may only be split in places where whitespace is allowed in the entry.
The asterisk ('* ')character may be used as a "wildcard" in place of the client name in a single entry. That entry will apply to all clients for whom there is not an entry that specifically names them.

EXAMPLES

Here is an example of an entry in the /etc/bootparams file:
client1 root=server1:/export/client1/root \
     swap=server1:/export/client1/swap

FILES

/etc/bootparams

SEE ALSO

rpc.bootparamd (1M),nsswitch.conf(4)

x86 only

rpld(1M)

NOTES

Solaris diskless clients use the identifiers "root", "swap", and "dump" to look up the pathnames for the root filesystem, a swap area, and a dump area, respectively. These are the only identifiers meaningful for SPARC diskless booting clients.
For x86 booting clients, the additional keyword identifiers "numbootfiles," "bootfile," and "bootaddr" are used (see rpld(1M)).
cdtoc(4)

NAME

cdtoc - CD-ROM table of contents file

DESCRIPTION

The table of contents file, .cdtoc, is an ASCII file that describes the contents of a CD-ROM or other software distribution media. It resides in the top-level directory of the file system on a slice of a CD-ROM. It is independent of file system format, that is, the file system on the slice can be either ufs or hsfs.
Each entry in the .cdtoc file is a line that establishes the value of a parameter in the following form:
PARAM=value
Blank lines and comments (lines preceded by a pound-sign, ``#'') are also allowed in the file. Parameters are grouped by product, with the beginning of a product defined by a line of the form:
PRODNAME=value
Each product is expected to consist of one or more software packages that are stored together in a subdirectory on the distribution media. There can be any number of products described within the file. There is no required order in which the parameters must be specified, except that the parameters must be grouped by product and the PRODNAME parameter must appear first in the list of parameters for each product specified. Each parameter is described below. All of the parameters are required for each product.
PRODNAME
The full name of the product. This must be unique within the .cdtoc file and is preferably unique across all possible products. This value may contain white space. The length of this value is limited to 256 ASCII characters; other restrictions may apply (see below).
PRODVERS
The version of the product. The value can contain any combination of letters, numbers, or other characters. This value may contain white space. The length of this value is limited to 256 ASCII characters; other restrictions may apply (see below).
PRODDIR
The name of the top-level directory containing the product. This name should be relative to the top-level directory of the distribution media, for example, Solaris_2.0. The number of path components in the name is limited only by the system's maximum path name length, which is 1024 ASCII characters. Any single component is limited to 256 ASCII characters. This value cannot contain white space.
The lengths of the values of PRODNAME and PRODVERS are further constrained by the fact that the initial install programs and swmtool(1M) concatenate these values to produce the full product name. swmtool concatenates the two values (inserting a space) to produce the name displayed in its software selection menu, for example, Solaris 2.0. For unbundled products the combined length of the values of PRODNAME and PRODVERS must not exceed 256 ASCII characters.
During installation of the bundled OS release, directories for diskless and dataless client usr and kvm file systems are created by constructing names derived from a concatenation of the values of PRODNAME, PRODVERS, and client architecture, for example,
/export/exec/kvm/Solaris_2.0_sparc.sun4c/usr/kvm. The length of the component containing the product name and version must not exceed 256 ASCII characters. Thus, for products corresponding to bundled OS releases (for example, Solaris 2.0), the values of PRODNAME and PRODVERS are effectively restricted to lengths much less than 256.
The initial installation programs, swm and swmtool, use the value of the PRODDIR macro in the .cdtoc file to indicate where packages can be found.

EXAMPLES

Here is a sample .cdtoc file:
#
# .cdtoc file -- Online product family CD
#
PRODNAME=Online DiskSuite
PRODVERS=2.0
PRODDIR=Online_DiskSuite_2.0
#
PRODNAME=Online Backup
PRODVERS=2.0
PRODDIR=Online_Backup_2.0
This example corresponds to the following directory layout on a CD-ROM partition:
        /.cdtoc
        /Online_DiskSuite_2.0
                ./SUNWmddr.c
                ./SUNWmddr.m
                ./SUNWmddu
        /Online_Backup_2.0
                ./SUNWhsm
The bundled release of Solaris 2.2 includes the following .cdtoc file:
PRODNAME=Solaris
PRODVERS=2.2
PRODDIR=Solaris_2.2
This file corresponds to the following directory layout on slice 0 of the Solaris 2.0 product CD:
/.cdtoc
/Solaris_2.2
        ./SUNWaccr
        ./SUNWaccu
        ./SUNWadmap
        .
        .
        .
        ./SUNWutool

SEE ALSO

swmtool(1M), clustertoc(4), packagetoc(4), pkginfo(4)
cklist.high(4)

NAME

asetmasters, tune.low, tune.med, tune.high, uid_aliases, cklist.low, cklist.med, cklist.high - ASET master files

SYNOPSIS

/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
/usr/aset/masters/uid_aliases
/usr/aset/masters/cklist.low
/usr/aset/masters/cklist.med
/usr/aset/masters/cklist.high

DESCRIPTION

The /usr/aset/masters directory contains several files used by the Automated Security Enhancement Tool (ASET). /usr/aset is the default operating directory for ASET. An alternative working directory can be specified by the administrators through the aset -d command or the ASETDIR environment variable. See aset(1M).
These files are provided by default to meet the need of most environments. The administrators, however, can edit these files to meet their specific needs. The format and usage of these files are described below.
All the master files allow comments and blank lines to improve readability. Comment lines must start with a leading "#" character.
tune.low
tune.med
tune.high    These files are used by the tune task (see aset(1M)) to restrict the permis-
sion settings for system objects. Each file is used by ASET at the security level indicated by the suffix. Each entry in the files is of the form: pathname mode owner group type
where
pathname
is the full pathname
mode
is the permission setting
owner
is the owner of the object
group
is the group of the object
type
is the type of the object It can be symlink for a sym-
bolic link, directory for a directory, or file for every-
thing else.
Regular shell wildcard ("* ","?", ...) characters can be used in the pathname for multiple references. See sh(1). The mode is a five-digit number that represents the permission setting. Note that this setting represents a least restrictive value. If the current setting is already more restrictive than the specified value, ASET does not loosen the permission settings.
For example, if mode is 00777 ,the permission will not be changed, since it is always less restrictive than the current setting.
Names must be used for owner and group instead of numeric ID's. ? can be used as a "don't care" character in place of owner, group, and type to prevent ASET from changing the existing values of these parameters.
uid_alias
This file allows user ID's to be shared by multiple user accounts. Normally, ASET discourages such sharing for accountability reason and reports user ID's that are shared. The administrators can, however, define permissible sharing by adding entries to the file. Each entry is of the form:
uid=alias1=alias2=alias3= ...
where
uid
is the shared user id
alias?
is the user accounts sharing the user ID
For example, if sync and daemon share the user ID 1 ,the corresponding entry is:
                1=sync=daemon
cklist.low
cklist.med
cklist.high
These files are used by the cklist task (see aset(1M)), and are created the first time the task is run at the low, medium, and high levels. When the cklist task is run, it compares the specified directory's contents with the appropriate cklist.level file and reports any discrepancies.

EXAMPLES

The following is an example of valid entries for the tune.low, tune.med, and tune.high files:
/bin       00777      root       staff      symlink
/etc       02755      root       staff      directory
/dev/sd*   00640      root       operator   file

SEE ALSO

aset(1M), asetenv(4)
ASET Administrator Manual
cklist.low(4)

NAME

asetmasters, tune.low, tune.med, tune.high, uid_aliases, cklist.low, cklist.med, cklist.high - ASET master files

SYNOPSIS

/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
/usr/aset/masters/uid_aliases
/usr/aset/masters/cklist.low
/usr/aset/masters/cklist.med
/usr/aset/masters/cklist.high

DESCRIPTION

The /usr/aset/masters directory contains several files used by the Automated Security Enhancement Tool (ASET). /usr/aset is the default operating directory for ASET. An alternative working directory can be specified by the administrators through the aset -d command or the ASETDIR environment variable. See aset(1M).
These files are provided by default to meet the need of most environments. The administrators, however, can edit these files to meet their specific needs. The format and usage of these files are described below.
All the master files allow comments and blank lines to improve readability. Comment lines must start with a leading "#" character.
tune.low
tune.med
tune.high    These files are used by the tune task (see aset(1M)) to restrict the permis-
sion settings for system objects. Each file is used by ASET at the security level indicated by the suffix. Each entry in the files is of the form: pathname mode owner group type
where
pathname
is the full pathname
mode
is the permission setting
owner
is the owner of the object
group
is the group of the object
type
is the type of the object It can be symlink for a sym-
bolic link, directory for a directory, or file for every-
thing else.
Regular shell wildcard ("* ","?", ...) characters can be used in the pathname for multiple references. See sh(1). The mode is a five-digit number that represents the permission setting. Note that this setting represents a least restrictive value. If the current setting is already more restrictive than the specified value, ASET does not loosen the permission settings.
For example, if mode is 00777 ,the permission will not be changed, since it is always less restrictive than the current setting.
Names must be used for owner and group instead of numeric ID's. ? can be used as a "don't care" character in place of owner, group, and type to prevent ASET from changing the existing values of these parameters.
uid_alias
This file allows user ID's to be shared by multiple user accounts. Normally, ASET discourages such sharing for accountability reason and reports user ID's that are shared. The administrators can, however, define permissible sharing by adding entries to the file. Each entry is of the form:
uid=alias1=alias2=alias3= ...
where
uid
is the shared user id
alias?
is the user accounts sharing the user ID
For example, if sync and daemon share the user ID 1 ,the corresponding entry is:
                1=sync=daemon
cklist.low
cklist.med
cklist.high
These files are used by the cklist task (see aset(1M)), and are created the first time the task is run at the low, medium, and high levels. When the cklist task is run, it compares the specified directory's contents with the appropriate cklist.level file and reports any discrepancies.

EXAMPLES

The following is an example of valid entries for the tune.low, tune.med, and tune.high files:
/bin       00777      root       staff      symlink
/etc       02755      root       staff      directory
/dev/sd*   00640      root       operator   file

SEE ALSO

aset(1M), asetenv(4)
ASET Administrator Manual
cklist.med(4)

NAME

asetmasters, tune.low, tune.med, tune.high, uid_aliases, cklist.low, cklist.med, cklist.high - ASET master files

SYNOPSIS

/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
/usr/aset/masters/uid_aliases
/usr/aset/masters/cklist.low
/usr/aset/masters/cklist.med
/usr/aset/masters/cklist.high

DESCRIPTION

The /usr/aset/masters directory contains several files used by the Automated Security Enhancement Tool (ASET). /usr/aset is the default operating directory for ASET. An alternative working directory can be specified by the administrators through the aset -d command or the ASETDIR environment variable. See aset(1M).
These files are provided by default to meet the need of most environments. The administrators, however, can edit these files to meet their specific needs. The format and usage of these files are described below.
All the master files allow comments and blank lines to improve readability. Comment lines must start with a leading "#" character.
tune.low
tune.med
tune.high    These files are used by the tune task (see aset(1M)) to restrict the permis-
sion settings for system objects. Each file is used by ASET at the security level indicated by the suffix. Each entry in the files is of the form: pathname mode owner group type
where
pathname
is the full pathname
mode
is the permission setting
owner
is the owner of the object
group
is the group of the object
type
is the type of the object It can be symlink for a sym-
bolic link, directory for a directory, or file for every-
thing else.
Regular shell wildcard ("* ","?", ...) characters can be used in the pathname for multiple references. See sh(1). The mode is a five-digit number that represents the permission setting. Note that this setting represents a least restrictive value. If the current setting is already more restrictive than the specified value, ASET does not loosen the permission settings.
For example, if mode is 00777 ,the permission will not be changed, since it is always less restrictive than the current setting.
Names must be used for owner and group instead of numeric ID's. ? can be used as a "don't care" character in place of owner, group, and type to prevent ASET from changing the existing values of these parameters.
uid_alias
This file allows user ID's to be shared by multiple user accounts. Normally, ASET discourages such sharing for accountability reason and reports user ID's that are shared. The administrators can, however, define permissible sharing by adding entries to the file. Each entry is of the form:
uid=alias1=alias2=alias3= ...
where
uid
is the shared user id
alias?
is the user accounts sharing the user ID
For example, if sync and daemon share the user ID 1 ,the corresponding entry is:
                1=sync=daemon
cklist.low
cklist.med
cklist.high
These files are used by the cklist task (see aset(1M)), and are created the first time the task is run at the low, medium, and high levels. When the cklist task is run, it compares the specified directory's contents with the appropriate cklist.level file and reports any discrepancies.

EXAMPLES

The following is an example of valid entries for the tune.low, tune.med, and tune.high files:
/bin       00777      root       staff      symlink
/etc       02755      root       staff      directory
/dev/sd*   00640      root       operator   file

SEE ALSO

aset(1M), asetenv(4)
ASET Administrator Manual
clustertoc(4)

NAME

clustertoc - cluster table of contents description file

DESCRIPTION

The cluster table of contents file, .clustertoc, is an ASCII file that describes a hierarchical view of a software product. A .clustertoc file is required for the base OS product. The file resides in the top-level directory containing the product.
The hierarchy described by .clustertoc can be of arbitrary depth, although the initial system installation programs assume that it has three levels. The hierarchy is described bottom-up, with the packages described in .packagetoc at the lowest layer. The next layer is the cluster layer which collects packages into functional units. The highest layer is the meta-cluster layer which collects packages and clusters together into typical configurations.
The hierarchy exists to facilitate the selection or deselection of software for installation at varying levels of granualarity. Interacting at the package level gives the finest level of control over what software is to be installed.
Each entry in the .clustertoc file is a line that establishes the value of a parameter in the following form:
PARAM=value
A line starting with a pound-sign, ``#'', is considered a comment and is ignored.
Parameters are grouped by cluster or meta-cluster. The start of a cluster description is defined by a line of the form:
CLUSTER=value
The start of a meta-cluster description is defined by a line of the form:
METACLUSTER=value
There is no order implied or assumed for specifying the parameters for a (meta-)cluster with the exception of the CLUSTER or METACLUSTER parameter, which must appear first and the END parameter which must appear last.
Each parameter is described below. All of the parameters are mandatory.
CLUSTER
The cluster identifier (for example, SUNWCacc). The identifier specified must be unique within the package and cluster identifier namespace defined by a product's .packagetoc and .clustertoc files. The identifiers used are subject to the same constraints as those for package identifiers. These constraints are (from pkginfo(4)):
``All characters in the abbreviation must be alphanumeric and the first may not be numeric. The abbreviation is limited to a maximum length of nine characters. install, new, and all are reserved abbreviations.''
A cluster must be described before another cluster or meta-cluster may refer to it.
METACLUSTER The metacluster identifier (for example, SUNWCprog). The identifier
specified must be unique within the package and cluster identifier namespace defined by a product's .packagetoc and .clustertoc files. The identifiers used are subject to the same constraints as those for package identifiers. These constraints are (from pkginfo(4)):
``All characters in the abbreviation must be alphanumeric and the first may not be numeric. The abbreviation is limited to a maximum length of nine characters. install, new, and all are reserved abbreviations.''
Meta-clusters cannot contain references to other meta-clusters.
NAME
The full name of the (meta-)cluster. The length of the name string supplied may not exceed 256 characters.
VENDOR
The name of the (meta-)cluster's vendor. The length of the vendor string supplied may not exceed 256 characters.
VERSION
The version of the (meta-)cluster. The length of the version string supplied may not exceed 256 characters.
DESC
An informative textual description of the (meta-)cluster's contents. The length of the description supplied may not exceed 256 characters. The text should contain no newlines.
SUNW_CSRMEMBER
Indicates that the package or cluster is a part of the (meta-) cluster currently being described. The value specified is the identifier of the package or cluster. There may be an arbitrary number of
SUNW_CSRMEMBER parameters per (meta-)cluster.

EXAMPLES

The following is an example of a cluster description in a .clustertoc file.
# ident "@(#)clustertoc.4 1.2 93/02/24"
CLUSTER=SUNWCacc
NAME=System Accounting
DESC=System accounting utilities
VENDOR=Sun Microsystems, Inc.
VERSION=7.2
SUNW_CSRMEMBER=SUNWaccr
SUNW_CSRMEMBER=SUNWaccu
END
The following is an example of a meta-cluster description in a .clustertoc file.
# required meta-cluster description for Solaris 2.0 FCS
METACLUSTER=SUNWCreq
NAME=Core System Support
DESC=A pre-defined software configuration consisting of the minimum
required software for a standalone, non-networked workstation.
VENDOR=Sun Microsystems, Inc.
VERSION=2.0
SUNW_CSRMEMBER=SUNWadmr
SUNW_CSRMEMBER=SUNWcar
SUNW_CSRMEMBER=SUNWCcs
SUNW_CSRMEMBER=SUNWCcg6
SUNW_CSRMEMBER=SUNWCdfb
SUNW_CSRMEMBER=SUNWkvm
SUNW_CSRMEMBER=SUNWCnis
SUNW_CSRMEMBER=SUNWowdv
SUNW_CSRMEMBER=SUNWter
END

SEE ALSO

cdtoc(4), order(4), packagetoc(4), pkginfo(4)

NOTES

The current implementation of the initial system installation programs depend on the .clustertoc describing three required meta-clusters for the base OS product:
SUNWCall
contains all of the software packages in the OS distribution.
SUNWCuser
contains the typical software packages for an end-user of the OS distribution.
SUNWCreq
contains the bare-minimum packages required to boot and configure the OS to the point of running a multi-user shell.
compver(4)

NAME

compver - compatible versions file

DESCRIPTION

compver is an ASCII file used to specify previous versions of the associated package which are upward compatible. It is created by a package developer.
Each line of the file specifies a previous version of the associated package with which the current version is backward compatible.
Since some packages may require installation of a specific version of another software package, compatibility information is extremely crucial. Consider, for example, a package called "A" which requires version "1.0" of application "B" as a prerequisite for installation. If the customer installing "A" has a newer version of "B" (version 1.3), the compver file for "B" must indicate that "1.3" is compatible with version "1.0" in order for the customer to install package "A".

EXAMPLES

A sample compver file is shown below.
Version 1.3
Version 1.0

NOTES

The comparison of the version string disregards white space and tabs. It is performed on a word-by-word basis. Thus "Version 1.3" and "Version 1.3" would be considered the same.
copyright(4)

NAME

copyright - copyright information file

DESCRIPTION

copyright is an ASCII file used to provide a copyright notice for a package. The text may be in any format. The full file contents (including comment lines) is displayed on the terminal at the time of package installation.
core(4)

NAME

core - core image file

DESCRIPTION

The operating system writes out a core image of a process when it is terminated due to the receipt of some signals. The core image is called core and is written in the process's working directory (provided it can be; normal access controls apply). A process with an effective user ID different from the real user ID will not produce a core image.
The core file contains all the process information pertinent to debugging: contents of hardware registers, process status and process data. The format of a core file is object file specific.
For ELF executable programs (see a.out (4)),the core file generated is also an ELF file, containing ELF program and file headers. The e_type field in the file header has type ET_CORE. The program header contains an entry for every loadable and writeable segment that was part of the process address space, including shared library segments. The contents of the segments themselves are also part of the core image.
The program header of an ELF core file also contains a NOTE segment. This segment may contain the following entries. Each has entry name "CORE" and presents the contents of a system structure:
prstatus_t
The entry containing this structure has a NOTE type of 1. This structure contains things of interest to a debugger from the operating system's u-area, such as the general registers, signal dispositions, state, reason for stopping, process ID and so forth. The prstatus_t structure is defined in <sys/procfs.h>.
prfpregset_t
This entry is present only if the process used the floating-point hardware. It has a NOTE type of 2 and contains the floating-point registers. The prfpregset_t structure is defined in <sys/procfs.h>.
prpsinfo_t
The entry containing this structure has a NOTE type of 3. It contains information of interest to the ps(1) command, such as process status, cpu usage, "nice" value, controlling terminal, user ID, process ID, the name of the executable and so forth. The prpsinfo_t structure is defined in <sys/procfs.h>.
The size of the core file created by a process may be controlled by the user (see getrlimit(2)).

SEE ALSO

adb(1), gcore(1), crash(1M), getrlimit(2), setuid(2), elf(3E), a.out (4),proc (4),signal(5)
ANSI C Programmer's Guide
default_fs(4)

NAME

default_fs, fs - specify the default file system type for local or remote file systems

DESCRIPTION

When file system administration commands have both specific and generic components (for example, fsck(1M)), the file system type must be specified. If it is not explicitly specified using the -F FSType command line option, the generic command looks in /etc/vfstab in order to determine the file system type, using the supplied raw or block device or mount point. If the file system type can not be determined by searching /etc/vfstab, the command will use the default file system type specified in either /etc/default/fs or /etc/dfs/dfstypes, depending on whether the file system is local or remote.
The default local file system type is specified in /etc/default/fs by a line of the form LOCAL=fstype (for example, LOCAL=ufs). The default remote file system type is determined by the first entry in the /etc/dfs/fstypes file.
File system administration commands will determine whether the file system is local or remote by examining the specified device name. If the device name starts with ``/'' (slash), it is considered to be local; otherwise it is remote.
The default file system types can be changed by editing the default files with a text editor.

FILES

/etc/vfstab
list of default parameters for each file system
/etc/default/fs
the default local file system type
/etc/dfs/fstypes the default remote file system type

SEE ALSO

fstypes(4), vfstab(4)
depend(4)

NAME

depend - software dependencies file

DESCRIPTION

depend is an ASCII file used to specify information concerning software dependencies for a particular package. The file is created by a software developer.
Each entry in the depend file describes a single software package. The instance of the package is described after the entry line by giving the package architecture and/or version. The format of each entry and subsequent instance definition is:
type pkg name
        (arch)version
        (arch)version
        ...
The fields are:
type
Defines the dependency type. Must be one of the following characters:
P
Indicates a prerequisite for installation, for example, the referenced package or versions must be installed.
I
Implies that the existence of the indicated package or version is incompatible.
R
Indicates a reverse dependency. Instead of defining the
package's own dependencies, this designates that another package depends on this one. This type should be used only when an old package does not have a depend file but it relies on the newer package nonetheless. Therefore, the present package should not be removed if the designated old package is still on the system since, if it is removed, the old package will no longer work.
pkg
Indicates the package abbreviation.
name
Specifies the full package name.
(arch)version
Specifies a particular instance of the software. A version name cannot begin with a left parenthesis. The instance specifications, both arch and version, are completely optional but must each begin on a new line that begins with white space. A null version set equates to any version of the indicated package.

EXAMPLES

Here is a sample depend file:
#ident "@(#)pkg.compat:depend 1.1"
P nsu           Networking Support Utilities
P inet          Internet Utilities
P sys           System Header Files
P src_compat Source Compatibility Files
device.cfinfo(4)

NAME

device.cfinfo - devconfig configuration files

SYNOPSIS

device.cfinfo

AVAILABILITY

x86

DESCRIPTION

device.cfinfo files pass information about device configuration to the devconfig(1M) program. They allow devconfig(1M) to provide the user with valid ranges for device attributes.
devconfig(1M) associates a device with its cfinfo file by name. For example, the device logi for the Logitec Bus Mouse has the devconfig(1M) configuration file logi.cfinfo associated with it in the DEVCONFIGHOME directory. DEVCONFIGHOME is /usr/lib/devconfig by default and may be set in the user's environment.
Below is a yaccish grammar of a cfinfo file:
cfinfo_file:         cfinfo_devspec EOF
                   ;
cfinfo_devspec:
cfinfo_spec_list SEMICOLON
                   ;
cfinfo_spec_list:
cfinfo_spec |
                   cfinfo_spec_list cfinfo_spec
                   ;
cfinfo_spec:
comment |
                   attr_value_pair NEWLINE
                   ;
comment:
POUNDSIGN |
                   POUNDSIGN STRING
                   ;
attr_value_pair:
ATTR_NAME EQUALS STRING |
                   ATTR_OWNAME EQUALS STRING
                   ATTR_TITLE EQUALS STRING |
                   ATTR_CATEGORY EQUALS STRING |
                   ATTR_INSTANCE EQUALS STRING |
                   ATTR_CLASS EQUALS STRING |
                   ATTR_TYPE EQUALS STRING |
                   ATTR_REAL EQUALS STRING |
                   ATTR_AUTO EQUALS STRING |
                   NAME EQUALS value_spec_string
                   ;
value_spec_string: QUOTE value_spec QUOTE
                   ;
value_spec:
value_type COMMA value_list
                   ;
value_type:
| /* EMPTY * /
                   TYPE_NUMERIC |
                   TYPE_STRING |
                   TYPE_VAR
                   ;
value_list:
integer_value_list |
                   string_value_list
                   ;
integer_value_list:
INTEGER |
                   INTEGER COLON INTEGER |
                   INTEGER COMMA integer_value_list
                   ;
string_value_list:
STRING |
                   STRING COMMA string_value_list
                   ;
ATTR_NAME            name           # device name specified in driver.conf
ATTR_CLASS           class          # device class specified in driver.conf
ATTR_TYPE            type           # device type specified in OWconfig
ATTR_OWNAME          __owname__     # device name specified in OWconfig
ATTR_TITLE           __title__      # device title displayed by devconfig
ATTR_CATEGORY        __category__   # device category
ATTR_INSTANCE        __instance__   # device unit
ATTR_REAL            __real__       # attributes to write to driver.conf
ATTR_AUTO            __auto__       # self-identifying device attribute
TYPE_NUMERIC         numeric        # precedes an integer value list
TYPE_STRING          string         # precedes a string values list
TYPE_VAR             var            # precedes a variable specification
The first value in a value_list is the default value picked by devconfig(1M) for the attribute. An attribute name of the form __name__ is used internally by devconfig(1M). Number ranges are specified as n1:n2. An internal attribute of the type var specifies a configurable portion of a real attribute. (See examples below.) Certain internal attributes have an expanded form when displayed. These attributes are listed in the file abbreviations in DEVCONFIGHOME. The file abbreviations also includes a list of name mappings for certain category names. If the __real__ attribute is present, only the attribute names it specifies are written to a driver.conf file. Otherwise all non-internal attributes are written.

EXAMPLES

Here is the device configuration file logi.cfinfo for the LOGITECH bus mouse. The driver configuration file for this device is called logi.conf.
name="logi"
                  __owname__="pointer:0"
                  __title__="Logitec bus mouse"

                  __category__="pointer"
class="sysbus"
type="LOGI-B"
buttons="var,__nbuttons__"
__nbuttons__="numeric,2:3"
dev="/dev/logi"
intr="numeric,1","var,__irq__"
__irq__="numeric,2:5"
__real__="name","class","intr"
;
The driver name for the LOGITECH Bus Mouse is logi. The device name in OWconfig (see the OpenWindows Reference Manual) is pointer:0. The device category is pointer; the device category is displayed as pointing devices however since there is a category mapping for pointer in the abbreviations file. The device class is sysbus as specified in the file /kernel/drv/classes. A device of class owin does not have a device driver associated with it. The device IPL is 1. The device IRQ is substituted by the variable __irq__ and has a range of 2 to 5. A name mapping for __irq__ exists in abbreviations and so __irq__ is displayed as Interrupt (IRQ):. The device attributes written to logi.conf are name , class and intr as specified by the __real__" entry.
The resulting entry in logi.conf is:
name="logi" class="sysbus" intr=1,2;
The resulting entry in OWconfig is:
type="LOGI-B" buttons=3 dev="/dev/logi" class="owin" name="pointer:0";
Here is an example of a self-identifying device.
name="lp"
                  __title__="Parallel printer port"
                  __category__="lp"

                  class="sysbus"
__auto__="string,true"
;
The driver for the parallel port automatically identifies it, and devconfig(1M) treats this device as self-identifying.

FILES

abbreviations

SEE ALSO

devconfig(1M), driver.conf(4),
OpenWindows Reference Manual
device_allocate(4)

NAME

device_allocate - device_allocate file

SYNOPSIS

/etc/security/device_allocate

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

The device_allocate file contains mandatory access control information about each physical device. Each device is represented by a one line entry of the form:
device-name; device-type;reserved;reserved;alloc; device-exec
where
device-name
This is an arbitrary ASCII string naming the physical dev-
ice. This field contains no embedded white space or non-
printable characters.
device-type
This is an arbitrary ASCII string naming the generic device
type. This field identifies and groups together devices of
like type. This field contains no embedded white space or
non-printable characters.
reserved
This field is reserved for future use.
reserved
This field is reserved for future use.
alloc
This field contains an arbitrary string which controls
whether or not a device is allocatable. If the field contains
only an asterisk (* ),the device is not allocatable. Other-
wise, the device may be allocated and deallocated in the
normal fashion.
device-exec
This is the physical device's data purge program to be run
any time the device is acted on by allocate(1M). This is to
ensure that all usable data is purged from the physical
device before it is reused. This field contains the filename
of a program in /etc/security/lib or the full pathname of a
cleanup script provided by the system administrator.
The device_allocate file is an ASCII file that resides in the /etc/security directory.
Lines in device_allocate can end with a `\' to continue an entry on the next line.
Comments may also be included. A `# 'makes a comment of all further text until the next NEWLINE not immediately preceded by a `\'.
Leading and trailing blanks are allowed in any of the fields.
The device_allocate file must be created by the system administrator before device allocation is enabled.
The device_allocate file is owned by root, with a group of sys, and a mode of 0644.

EXAMPLES

Declare that physical device st0 is a type st. st is allocatable, and the script used to clean the device after running deallocate(1M) is named /etc/security/lib/st_clean.
                # scsi tape
        st0;\
                st;\
                reserved;\
                reserved;\
                alloc;\
                /etc/security/lib/st_clean;\
Declare that physical device fd0 is of type fd . fd is allocatable, and the script used to clean the device after running deallocate(1M) is named /etc/security/lib/fd_clean.
        # floppy drive
fd0;\
        fd;\
        reserved;\
        reserved;\
        alloc;\
        /etc/security/lib/fd_clean;\
Note that making a device allocatable means that you need to allocate and deallocate them to use them (with allocate(1M) and deallocate(1M)). If a device is allocatable, there will be an asterisk (* )in the alloc field, and one can use the device without allocating and deallocating it.

FILES

/etc/security/device_allocate
Contains list of allocatable devices

SEE ALSO

allocate(1M), bsmconv(1M), deallocate(1M), list_devices(1M)
device_maps(4)

NAME

device_maps - device_maps file

SYNOPSIS

/etc/security/device_maps

AVAILABILITY

The functionality described in this man page is available only if the Basic Security Module (BSM) has been enabled. See bsmconv(1M) for more information.

DESCRIPTION

The device_maps file contains access control information about each physical device. Each device is represented by a one line entry of the form:
device-name : device-type : device-list :
where
device-name
This is an arbitrary ASCII string naming the physical dev-
ice. This field contains no embedded white space or non-
printable characters.
device-type
This is an arbitrary ASCII string naming the generic device
type. This field identifies and groups together devices of
like type. This field contains no embedded white space or
non-printable characters.
device-list
This is a list of the device special files associated with the
physical device. This field contains valid device special
file path names separated by white space.
The device_maps file is an ASCII file that resides in the /etc/security directory.
Lines in device_maps can end with a `\' to continue an entry on the next line.
Comments may also be included. A `# 'makes a comment of all further text until the next NEWLINE not immediately preceded by a `\'.
Leading and trailing blanks are allowed in any of the fields.
The device_maps file must be created by the system administrator before device allocation is enabled.
This file is owned by root, with a group of sys, and a mode of 0644.

EXAMPLES

# scsi tape
st1:\
        rmt:\
        /dev/rst21 /dev/nrst21 /dev/rst5 /dev/nrst5 /dev/rst13 \
        /dev/nrst13 /dev/rst29 /dev/nrst29 /dev/rmt/1l /dev/rmt/1m \
        /dev/rmt/1 /dev/rmt/1h /dev/rmt/1u /dev/rmt/1ln /dev/rmt/1mn \
        /dev/rmt/1n /dev/rmt/1hn /dev/rmt/1un /dev/rmt/1b /dev/rmt/1bn:\

FILES

/etc/security/device_maps

SEE ALSO

allocate(1M), bsmconv(1M), deallocate(1M), dminfo(1M), list_devices(1M)
dfstab(4)

NAME

dfstab - file containing commands for sharing resources across a network

DESCRIPTION

dfstab resides in directory /etc/dfs and contains commands for sharing resources across a network. dfstab gives a system administrator a uniform method of controlling the automatic sharing of local resources.
Each line of the dfstab file consists of a share(1M) command. The dfstab file can be read by the shell to share all resources. System administrators can also prepare their own shell scripts to execute particular lines from dfstab.
The contents of dfstab are executed automatically when the system enters run-level 3.

SEE ALSO

share(1M), shareall(1M)
dir(4)

NAME

dir_ufs, dir - format of ufs directories

SYNOPSIS

#include <sys/param.h>
#include <sys/types.h>
#include <sys/fs/ufs_fsdir.h>

DESCRIPTION

A directory consists of some number of blocks of DIRBLKSIZ bytes, where DIRBLKSIZ is chosen such that it can be transferred to disk in a single atomic operation (for example, 512 bytes on most machines).
Each DIRBLKSIZ -byteblock contains some number of directory entry structures, which are of variable length. Each directory entry has a struct direct at the front of it, containing its inode number, the length of the entry, and the length of the name contained in the entry. These entries are followed by the name padded to a 4 byte boundary with null bytes. All names are guaranteed null-terminated. The maximum length of a name in a directory is MAXNAMLEN.
#define        DIRBLKSIZ                        DEV_BSIZE
#define        MAXNAMLEN                        256
struct direct {
     u_long d_ino;                             /* inode number of entry * /
     u_short d_reclen;                         /* length of this record * /
     u_short d_namlen;                         /* length of string in d_name * /
     char    d_name[MAXNAMLEN + 1];            /* name must be no longer than this * /
};

SEE ALSO

fs_ufs(4)
dir_ufs(4)

NAME

dir_ufs, dir - format of ufs directories

SYNOPSIS

#include <sys/param.h>
#include <sys/types.h>
#include <sys/fs/ufs_fsdir.h>

DESCRIPTION

A directory consists of some number of blocks of DIRBLKSIZ bytes, where DIRBLKSIZ is chosen such that it can be transferred to disk in a single atomic operation (for example, 512 bytes on most machines).
Each DIRBLKSIZ -byteblock contains some number of directory entry structures, which are of variable length. Each directory entry has a struct direct at the front of it, containing its inode number, the length of the entry, and the length of the name contained in the entry. These entries are followed by the name padded to a 4 byte boundary with null bytes. All names are guaranteed null-terminated. The maximum length of a name in a directory is MAXNAMLEN.
#define        DIRBLKSIZ                        DEV_BSIZE
#define        MAXNAMLEN                        256
struct direct {
     u_long d_ino;                             /* inode number of entry * /
     u_short d_reclen;                         /* length of this record * /
     u_short d_namlen;                         /* length of string in d_name * /
     char    d_name[MAXNAMLEN + 1];            /* name must be no longer than this * /
};

SEE ALSO

fs_ufs(4)
dirent(4)

NAME

dirent - file system independent directory entry

SYNOPSIS

#include <dirent.h>

DESCRIPTION

Different file system types may have different directory entries. The dirent structure defines a file system independent directory entry, which contains information common to directory entries in different file system types. A set of these structures is returned by the getdents(2) system call.
The dirent structure is defined:
struct dirent {
    ino_t                      d_ino;
    off_t                      d_off;
    unsigned short             d_reclen;
    char                       d_name[1];
};
The d_ino is a number which is unique for each file in the file system. The field d_off is the byte offset of the next, non-empty directory entry in the actual file system directory. The field d_name is the beginning of the character array giving the name of the directory entry. This name is null terminated and may have at most MAXNAMLEN characters. This results in file system independent directory entries being variable length entities. The value of d_reclen is the record length of this entry. This length is defined to be the number of bytes between the current entry and the next one, so that the next structure will be suitably aligned.

SEE ALSO

getdents(2)
driver.conf(4)

NAME

driver.conf - driver configuration files

SYNOPSIS

driver.conf

DESCRIPTION

Driver configuration files pass information about device drivers and their configuration to the system. Most device drivers do not have to have configuration files. Drivers for devices that are self-identifying, such as the SBus devices on many systems, can usually obtain all the information they need from the FCode PROM on the SBus card using the DDI property interfaces. See ddi_prop_op(9F) for details.
The system associates a driver with its configuration file by name. For example, a driver in /usr/kernel/drv called wombat has the driver configuration file wombat.conf associated with it. By convention, the driver configuration file lives in the same directory as the driver.
The syntax of a single entry in a driver configuration file takes one of three forms:
name ="node name" parent="parent name" [property-name=value ...];
In this form, the parent name is a simple nexus driver name. Alternatively, the parent can be specified by the type of interface it presents to its children.
name ="node name" class="class name" [property-name=value ...];
For example, the driver for the SCSI host adapter may have different names on different platforms, but the target drivers can use class scsi to insulate themselves from these differences.
Entries of either form above correspond to a device information (devinfo) node in the kernel device tree. Each node has a name which is usually the name of the driver, and a parent name which is the name of the parent devinfo node it will be connected to. Any number of name-value pairs may be specified to create properties on the prototype devinfo node. These properties can be sized and retrieved using the DDI property interfaces (for example, ddi_getproplen(9F) and ddi_getprop(9F)). The prototype devinfo node specification must be terminated with a semicolon (; ).
The third form of an entry is simply a list of properties.
[property-name=value ...];
A property created in this way is treated as global to the driver. It can be overridden by a property with the same name on a particular devinfo node, either by creating one explicitly on the prototype node in the driver.conf file or by the driver.
Items are separated by any number of newlines, SPACE or TAB characters.
The configuration file may contain several entries to specify different device configurations and parent nodes. The system may call the driver for each possible prototype devinfo node, and it is generally the responsibility of the drivers probe(9E) routine to determine if the hardware described by the prototype devinfo node is really present.
Property names should obey the same naming convention as Open Boot PROM properties, in particular they should not contain at-sign (@), or slash (/) characters. Property values can be decimal integers or strings delimited by double quotes ("). Hexadecimal
integers can be constructed by prefixing the digits with 0x .
A comma separated list of integers can be used to construct properties whose value is an integer array. The value of such properties can be retrieved inside the driver using ddi_getlongprop(9F) or one of the related property interfaces.
Comments are specified by placing a # character at the beginning of the comment string, the comment string extends for the rest of the line.

EXAMPLES

Here is a configuration file called ACME,simple.conf for a VMEbus frame buffer called ACME,simple.
#
# Copyright (c) 1993, by ACME Fictitious Devices, Inc.
#
        #ident "@(#)ACME,simple.conf            1.3     93/09/09"
name="ACME,simple" class="vme"
reg=0x7d,0x400000,0x110600;
This example creates a prototype devinfo node called ACME,simple under all parent nodes of class vme. It specifies a property called reg that consists of an array of three integers. The reg property is interpreted by the parent node, see vme(4) for further details.
Here is a configuration file called ACME,example.conf for a pseudo device driver called ACME,example.
#
# Copyright (c) 1993, ACME Fictitious Devices, Inc.
#
        #ident "@(#)ACME,example.conf           1.2     93/09/09"
name="ACME,example" parent="pseudo" instance=0
  debug-level=1;

name="ACME,example" parent="pseudo" instance=1;
whizzy-mode="on";
debug-level=3;
This example creates two devinfo nodes called ACME,example which will attach below the pseudo node in the kernel device tree. The instance property is only interpreted by the pseudo node, see pseudo(4) for further details. A property called debug-level will be created on the first devinfo node which will have the value 1. The example driver will be able to fetch the value of this property using ddi_getprop(9F).
Two global driver properties are created, whizzy-mode (which will have the string value "on") and debug-level (which will have the value 3). If the driver looks up the property whizzy-mode on either node, it will retrieve the value of the global whizzy-mode property ("on"). If the driver looks up the debug-level property on the first node, it will
retrieve the value of the debug-level property on that node (1). Looking up the same property on the second node will retrieve the value of the global debug-level property (3).

SEE ALSO

pseudo(4), sbus(4), scsi(4), vme(4), ddi_getprop(9F), ddi_getproplen(9F), ddi_getlongprop(9F), ddi_prop_op(9F)
Writing Device Drivers

WARNINGS

To avoid namespace collisions between multiple driver vendors, it is strongly recommended that the name property of the driver should begin with a vendor-unique string. A reasonably compact and unique choice is the vendor over-the-counter stock symbol.
dumpdates(4)

NAME

ufsdump, dumpdates - incremental dump format

SYNOPSIS

#include <sys/types.h>
#include <sys/inode.h>
#include <protocols/dumprestore.h>
/etc/dumpdates

DESCRIPTION

Tapes used by ufsdump(1M) and ufsrestore(1M) contain:
a header record
two groups of bit map records
a group of records describing directories
a group of records describing files
The format of the header record and of the first record of each description as given in the include file <protocols/dumprestore.h> is:
#define TP_BSIZE                 1024
#define NTREC                    10
#define HIGHDENSITYTREC          32
#define CARTRIDGETREC            63
#define TP_NINDIR                (TP_BSIZE /2)
#define TP_NINOS                 (TP_NINDIR / sizeop (long))
#define LBLSIZE                  16
#define NAMELEN                  64
#define NFS_MAGIC
(int) 60012
#define CHECKSUM                (int) 84446
union u_data {
        char s_addrs[TP_NINDIR ];
        long s_inos[TP_NINOS ];
union u_spcl {
        char dummy[TP_BSIZE ];
        struct s_spcl {
               long            c_type;
               time_t          c_date;
               time_t          c_ddate;
               long            c_volume;
               daddr_t         c_tapea;
               ino_t           c_inumber;
               long            c_magic;
               long            c_checksum;
               struct dinode   c_dinode;
               long            c_count;
               union           u_data c_data;
               char            c_label[LBLSIZE ];
               long            c_level;
               char            c_filesys[NAMELEN ];
               char            c_dev[NAMELEN ];
               char            c_host[NAMELEN ];
               long            c_flags;
               long            c_firstrec;
               long            c_spare[32];
       } s_spcl;
} u_spcl;
#define spcl u_spcl.s_spcl
#define c_addr c_data.s_addrs
#define c_inos cdata.s_inos
#define TS_TAPE
1
#define TS_INODE                 2
#define TS_ADDR                  4
#define TS_BITS                  3
#define TS_CLRI                  6
#define TS_END                   5
#define TS_EOM                   7
#define DR_NEWHEADER
1
#define DR_INODEINFO             2
#define DR_REDUMP                4
#define DR_TRUELIC               8
#define DUMPOUTFMT               "%-24s %c %s"
#define DUMPINFMT                "%24s %c %[^ \n ] \n"
The constants are described as follows:
TP_BSIZE
Size of file blocks on the dump tapes. Note that TP_BSIZE must be a multiple of DEV_BSIZE .
NTREC
Default number of TP_BSIZE byte records in a physical tape block, changeable by the b option to ufsdump(1M).
HIGHDENSITYNTREC
Default number of TP_BSIZE byte records in a physical tape block on 6250 BPI or higher density tapes.
CARTRIDGETREC
Default number of TP_BSIZE records in a physical tape block on cartridge tapes.
TP_NINDIR
Number of indirect pointers in a TS_INODE or TS_ADDR record. It must be a power of 2.
TP_NINOS
The maximum number of volumes on a tape. Used for tape labeling in hsmdump and hsmrestore (available with Online:Backup 2.0 optional software package SUNWhsm).
LBLSIZE
The maximum size of a volume label. Used for tape labeling in hsmdump and hsmrestore (available with Online:Backup 2.0 optional software package SUNWhsm).
NAMELEN
The maximum size of a host's name.
NFS_MAGIC
All header records have this number in c_magic.
CHECKSUM
Header records checksum to this value.
The TS_ entries are used in the c_type field to indicate what sort of header this is. The types and their meanings are as follows:
TS_TAPE
Tape volume label.
TS_INODE
A file or directory follows. The c_dinode field is a copy of the disk inode and contains bits telling what sort of file this is.
TS_ADDR
A subrecord of a file description. See s_addrs below.
TS_BITS
A bit map follows. This bit map has a one bit for each inode that was dumped.
TS_CLRI
A bit map follows. This bit map contains a zero bit for all inodes that were empty on the file system when dumped.
TS_END
End of tape record.
TS_EOM
floppy EOM -- restore compat with old dump
The flags are described as follows:
DR_NEWHEADER
New format tape header.
DR_INFODEINFO
Header contains starting inode info.
DR_REDUMP
Dump contains recopies of active files.
DR_TRUEINC
Dump is a "true incremental".
DUMPOUTFMT Name, incon, and ctime (date) for printf.
DUMPINFMT
Inverse for scanf.
The fields of the header structure are as follows:
s_addrs
An array of bytes describing the blocks of the dumped file. A byte is zero if the block associated with that byte was not present on the file system; otherwise, the byte is non-zero. If the block was not present on the file lsystem, no block was dumped; the block will be stored as a hole in the file. If there is not sufficient space in this record to describe all the blocks in a file, TS_ADDR records will be scattered through the file, each one picking up where the last left off
s_inos
The starting inodes on tape.
c_type
The type of the record.
c_date
The date of the previous dump.
c_ddate
The date of this dump.
c_volume
The current volume number of the dump.
c_tapea
The logical block of this record.
c_inumber
The number of the inode being dumped if this is of type TS_INODE .
c_magic
This contains the value MAGIC above, truncated as needed.
c_checksum
This contains whatever value is needed to make the record sum to CHECKSUM .
c_dinode
This is a copy of the inode as it appears on the file system.
c_count
The count of bytes in s_addrs.
u_data c_data
The union of either u_data c_data The union of either s_addrs or s_inos.
c_label
Label for this dump.
c_level
Level of this dump.
c_filesys
Name of dumped file system.
c_dev
Name of dumped service.
c_host
Name of dumped host.
c_flags
Additional information.
c_firstrec
First record on volume.
c_spare
Reserved for future uses.
Each volume except the last ends with a tapemark (read as an end of file). The last volume ends with a TS_END record and then the tapemark.
The dump history is kept in the file /etc/dumpdates. It is an ASCII file with three fields separated by white space:
The name of the device on which the dumped file system resides.
The level number of the dump tape; see ufsdump(1M).
The date of the incremental dump in the format generated by ctime(3C).
DUMPOUTFMT is the format to use when using printf(3S) to write an entry to /etc/dumpdates; DUMPINFMT is the format to use when using scanf(3S) to read an entry from /etc/dumpdates.

SEE ALSO

ufsdump(1M), ufsrestore(1M), ctime(3C), printf(3S), scanf(3S), types(5)
eisa(4)

NAME

sysbus, isa, eisa, mca - configuration files for ISA, EISA, and MCA bus device drivers

AVAILABILITY

x86

DESCRIPTION

Solaris for x86 platforms support the ISA, EISA, and MCA buses as the system bus. Drivers for devices on these buses use driver configuration files to inform the system that the device hardware may be present (see driver.conf(4) for more information). The configuration file must specify the device I/O port addresses, any interrupt capabilities that the device may have, any DMA channels it may require, and any memory-mapped addresses it may occupy.
Configuration files for ISA, EISA, and MCA device drivers should identify the parent nexus driver implicitly using the class keyword. This removes the dependency on the name of the particular nexus driver involved since most drivers can operate device controllers attached to any of those buses. The ISA, EISA, and MCA nexus drivers all belong to class sysbus. See driver.conf(4) for further details of configuration file syntax.
All bus drivers of class sysbus recognize the following properties:
intr
An arbitrary-length array where each element of the array consists of a pair of integers. Each array element describes a possible interrupt that the device might generate.
The first integer of each pair specifies the device's relative priority. This is the priority that this device's interrupt handler will receive relative to the interrupt handlers of other drivers. The priority is an integer from 1 to 16 . Generally, disks are assigned a priority of 5 ,while mice and printers are lower, and serial communication devices are higher, typically 7 . 10 is reserved by the system and must not be used. Interrupts 11 and greater are high level interrupts and are generally not recommended (see ddi_intr_hilevel(9F)).
The second integer of each pair denotes the hardware interrupt request (IRQ) number.
The driver can refer to the elements of this array by index using ddi_add_intr(9F). The index into the array is passed as the inumber argument of ddi_add_intr( ).
Only devices that generate interrupts need to provide intr properties.
reg
An arbitrary-length array where each element of the array consists of a 3-tuple of integers. Each array element describes a contiguous memory address range associated with the device on the bus.
The first integer of the tuple is reserved.
The driver can refer to the elements of this array by index, and construct kernel mappings to these addresses using ddi_map_regs(9F). The index into the array is passed as the rnumber argument of ddi_map_regs( ).
All sysbus device drivers must provide reg properties. The first two
integer elements of this property are used to construct the address part of the device name under /devices. If the device has memory-mapped addresses, the first integer should be 0 and the second integer should specify the physical address; if the device does not have memorymapped addresses, the first integer should specify a unique identifier and the second integer should be 0 . A recommended unique identifier is the ioaddr value; that is, specify the I/O address in both the ioaddr field and the first integer of the reg field. The third integer of each 3-tuple specifies the size, in bytes, of the mappable region.
It is recommended that drivers for devices connected to the system bus recognize the following standard property names:
ioaddr
An integer that describes the I/O port base address for this device.
dmachan
An integer that specifies the DMA channel used by this device. Only devices that use a DMA channel need to provide dmachan properties.

EXAMPLES

Here are three sample entries from three different driver.conf files:
name="fdc" class="sysbus" intr=5,6 ioaddr=0x3f0 dmachan=2 reg=0x3f0,0,0;
name="logi" class="sysbus" intr=1,4 ioaddr=0x23c reg=0x23c,0,0;
name="sbpro" class="sysbus" ioaddr=0x220 intr=5,7 dmachan=1 reg=0x220,0,0;

SEE ALSO

driver.conf(4), scsi(4), ddi_add_intr(9F), ddi_intr_hilevel(9F), ddi_map_regs(9F), ddi_prop_op(9F)
Writing Device Drivers
environ(4)

NAME

environ, .environ, .pref, .variables - user-preference variables files for AT&T FACE

DESCRIPTION

The .environ, .pref, and .variables files contain variables that indicate user preferences for a variety of operations. The .environ and .variables files are located under the user's $HOME/pref directory. The .pref files are found under $HOME/FILECABINET, $HOME/WASTEBASKET, and any directory where preferences were set via the organize command. Names and descriptions for each variable are presented below. Variables are listed one per line and are of the form variable=value.
Variables found in .environ include:
LOGINWIN[1-4]
Windows that are opened when FACE is initialized
SORTMODE
Sort mode for file folder listings. Values include the following hexadecimal digits:
1
sorted alphabetically by name
2
files most recently modified first
800
sorted alphabetically by object type
The values above may be listed in reverse order by "ORing" the following value:
1000
list objects in reverse order. For example, a value of 1002 will produce a folder listing with files LEAST recently modified
displayed first. A value of 1001 would produce a "reverse"
alphabetical by name listing of the folder
DISPLAYMODE
Display mode for file folders. Values include the following hexadecimal digits:
0
file names only
4
file names and brief description
8
file names, description, plus additional information
WASTEPROMPT
Prompt before emptying wastebasket (yes/no)?
WASTEDAYS
Number of days before emptying wastebasket
PRINCMD[1-3] Print command defined to print files.
UMASK
Holds default permissions that files will be created with.
Variables found in .pref are the following:
SORTMODE
which has the same values as the SORTMODE variable described in .environ above.
DISPMODE
            which has the same values as the DISPLAYMODE variable described in
            .environ above.
Variables found in .variables include:
EDITOR      Default editor
PS1         shell prompt

FILES

$HOME/pref/.environ
$HOME/pref/.variables
$HOME/FILECABINET/.pref
$HOME/WASTEBASKET/.pref
ethers(4)

NAME

ethers - Ethernet address to hostname database or domain

DESCRIPTION

The ethers file is a local source of information about the (48 bit) Ethernet addresses of hosts on the Internet. The ethers file can be used in conjunction with or instead of other ethers sources, including the NIS maps ethers.byname and ethers.byaddr and the NIS+ table ethers. Programs use the ethers(3N) routines to access this information.
The ethers file has one line for each host on an Ethernet. The line has the following format:
Ethernet-address official-host-name
Items are separated by any number of SPACE and/or TAB characters. A `# 'indicates the beginning of a comment extending to the end of line.
The standard form for Ethernet addresses is " x : x : x : x : xwhere
: x "
x is a hexadecimal
number between 0 and ff, representing one byte. The address bytes are always in network order. Host names may contain any printable character other than SPACE, TAB, NEWLINE, or comment character.

FILES

/etc/ethers

SEE ALSO

ethers(3N), hosts(4), nsswitch.conf(4)
fbtab(4)

NAME

logindevperm, fbtab - login-based device permissions

SYNOPSIS

/etc/logindevperm

DESCRIPTION

The /etc/logindevperm file contains information that is used by login(1) and ttymon(1M) to change the owner, group, and permissions of devices upon logging into or out of a console device. By default, this file contains lines for the keyboard, mouse, audio, and frame buffer devices.
The owner of the devices listed in /etc/logindevperm is set to the owner of the console by login(1). The group of the devices is set to the owner's group specified in /etc/passwd. The permissions are set as specified in /etc/logindevperm.
Fields are separated by TAB and/or SPACE characters. Blank lines and comments can appear anywhere in the file; comments start with a hashmark, ` # ', and continue to the end of the line.
The first field specifies the name of a console device (for example, /dev/console). The second field specifies the permissions to which the devices in the device_list field (third field) will be set. A device_list is a colon-separated list of device names. A device entry that is a directory name and ends with "/* "specifies all entries in the directory (except "." and ".."). For example, "/dev/fbs/* "specifies all frame buffer devices.
Once the devices are owned by the user, their permissions and ownership can be changed using chmod(1) and chown(1), as with any other user-owned file.
Upon logout the owner and group of these devices will be reset by ttymon(1M) to owner root and root's group as specified in /etc/passwd (typically other). The permissions are set as specified in the /etc/logindevperm file.

FILES

/etc/passwd
File that contains user group information.

SEE ALSO

chmod(1), chown(1), login(1), ttymon(1M), passwd(4)

NOTES

/etc/logindevperm provides a superset of the functionality provided by /etc/fbtab in SunOS 4.x releases.
fd(4)

NAME

fd - file descriptor files

DESCRIPTION

These files, conventionally called /dev/fd/0, /dev/fd/1, /dev/fd/2, and so on, refer to files accessible through file descriptors. If file descriptor n is open, these two system calls have the same effect:
fd = open("/dev/fd/n",mode);
fd = dup(n);
On these files creat(2) is equivalent to open, and mode is ignored. As with dup, subsequent reads or writes on fd fail unless the original file descriptor allows the operations.
For convenience in referring to standard input, standard output, and standard error, an additional set of names is provided: /dev/stdin is a synonym for /dev/fd/0, /dev/stdout for /dev/fd/1, and /dev/stderr for /dev/fd/2.

SEE ALSO

creat(2), dup(2), open(2)

DIAGNOSTICS

open(2) returns -1 and EBADF if the associated file descriptor is not open.
filehdr(4)

NAME

filehdr - file header for common object files

SYNOPSIS

#include <filehdr.h>

DESCRIPTION

Every common object file begins with a 20-byte header. The following C struct declaration is used:
struct filehdr
{
 unsigned short f_magic ;   /** magic number ** /
 unsigned short f_nscns ;   /** number of sections ** /
 long            f_timdat ; /** time & date stamp ** /
 long            f_symptr ; /** file ptr to symtab ** /
 long            f_nsyms ; /** number of symtab entries ** /
 unsigned short f_opthdr ; /** sizeof(opt and header) ** /
 unsigned short f_flags ;    /** flags ** /
};
f_symptr is the byte offset into the file at which the symbol table can be found. Its value can be used as the offset in fseek(3S) to position an I/O stream to the symbol table. The UNIX system optional header is 28 bytes. The valid magic numbers are given below:
#define I386MAGIC          0514    /** i386 Computer ** /
#define WE32MAGIC          0560    /** 3B2, 3B5, and 3B15 computers ** /
#define N3BMAGIC           0550    /** 3B20 computer ** /
#define NTVMAGIC           0551    /** 3B20 computer ** /
#define VAXWRMAGIC 0570
/** VAX writable text segments ** /
#define VAXROMAGIC 0575            /** VAX read only sharable
                                    text segments ** /
The value in f_timdat is obtained from the time(2) system call. Flag bits currently defined are:
#define F_RELFLG        0000001    /** relocation entries stripped ** /
#define F_EXEC          0000002    /** file is executable ** /
#define F_LNNO          0000004    /** line numbers stripped ** /
#define F_LSYMS         0000010    /** local symbols stripped ** /
#define F_AR16WR        0000200    /** 16-bit DEC host ** /
#define F_AR32WR        0000400    /** 32-bit DEC host ** /
#define F_AR32W         0001000    /** non-DEC host ** /
#define F_BM32ID        0160000    /** WE32000 family ID field ** /
#define F_BM32B         0020000    /** file contains WE 32100 code ** /
#define F_BM32MAU 0040000          /** file reqs MAU to execute ** /
#define F_BM32RST       0010000    /** this object file contains restore
                                    work around [3B5/3B2 only] ** /

SEE ALSO

time(2), fseek(3S), a.out (4)
format.dat(4)

NAME

format.dat - disk drive configuration for the format command.

DESCRIPTION

format.dat enables you to use your specific disk drives with format(1M). On Solaris 2.3 and later systems, format will automatically configure and label SCSI drives, so that they need not be defined in format.dat . Three things can be defined in the data file:
search paths
disk types
partition tables.

Syntax

The following syntax rules apply to the data file:
The pound # sign is the comment character. Any text on a line after a pound sign is not interpreted by format.
Each definition in the format.dat file appears on a signle logical line. If the definition is more than one line long, all but the last line of the definition must end with a backslash (\).
A definition consists of a series of assignments that have an identifier on the left side and one or more values on the right side. The assignment operator is the equal sign (=). Assignments within a definition must be separated by a colon (:).
White space is ignored by format(1M). If you want an assigned value to contain white space, enclose the entire value in double quotes ("). This will cause the white space within quotes to be preserved as part of the assignment value.
Some assignments can have multiple values on the right hand side. Separate values by a comma (,).

File Formats..format.dat ( 4 ) Keywords

The data file contains disk definitions that are read in by format(1M) when it starts up. Each definition starts with one of the following keywords: search_path, disk_type, and partition.
search_path
4.x: Tells format which disks it should search for when it starts up. The list in the default data file contains all the disks in the GENERIC configuration file. If your system has disks that are not in the GENERIC configuration file, add them to the search_path definition in your data file. The data file can contain only one search_path definition. However, this single definition lets you specify all the disks you have in your system.
  1. x: By default, format(1M) understands all the logical devices that are of the form /dev/rdsk/cntndnsn; hence search_path is not normally defined on a 5.x system.

disk_type
Defines the controller and disk model. Each disk_type definition contains information concerning the physical geometry of the disk. The default data file contains definitions for the controllers and disks that the Solaris operating system supports. You need to add a new disk_type only if you have an unsupported disk. You can add as many disk_type
definitions to the data file as you want.
The following controller types are supported by format(1M): XY450
Xylogics 450 controller (SMD)
XD7053
Xylogics 7053 controller (SMD)
MD21
SCSI, but using ESDI devices (aka shoebox)
SCSI
True SCSI (CCS or SCSI-2)
ISP-80
IPI panther controller
Note: The disk_type and partition definition entries must have "ctlr = MD21" for scsi disk devices for 4.1.1 release. But for 4.1.2, 4.1.3 and 5.x releases, the entries should say "ctlr = SCSI".
The keyword itself is assigned the name of the disk type. This name appears in the disk's label and is used to identify the disk type whenever format(1M) is run. Enclose the name in double quotes to preserve any white space in the name.
Below are lists of identifiers for supported controllers. Note that an asterisk ('* ')indicates the identifier is mandatory for that controller -- it is not part of the keyword name.
The following identifiers are assigned values in all disk_type definitions:
acyl*
alternate cylinders
asect
alternate sectors per track
atrks
alternate tracks
fmt_time
formatting time per cylinder
ncyl*
number of logical cylinders
nhead*
number of logical heads
nsect*
number of logical sectors per track
pcyl*
number of physical cylinders
phead
number of physical heads
psect
number of physical sectors per track
rpm*
drive RPM
These identifiers are for SCSI and MD-21 Controllers
read_retries
page 1 byte 3 (read retries)
write_retries
page 1 byte 8 (write retries)
cyl_skew
page 3 bytes 18-19 (cylinder skew)
trk_skew
page 3 bytes 16-17 (track skew)
trks_zone
page 3 bytes 2-3 (tracks per zone)
cache
page 38 byte 2 (cache parameter)
prefetch
page 38 byte 3 (prefetch parameter)
max_prefetch
page 38 byte 4 (minimum prefetch)
min_prefetch
page 38 byte 6 (maximum prefetch)
Note: The Page 38 values are device-specific. Refer the user to the particular disk's manual for these values.
For SCSI disks, the following geometry specifiers may cause a mode select on the byte(s) indicated:
asect
page 3 bytes 4-5 (alternate sectors per zone)
atrks
page 3 bytes 8-9 (alt. tracks per logical unit)
phead
page 4 byte 5 (number of heads)
psect
page 3 bytes 10-11 (sectors per track)
And these identifiers are for SMD Controllers Only
bps*
bytes per sector (SMD)
bpt*
bytes per track (SMD)
Note: under SunOS 5.x, bpt is only required for SMD disks. Under SunOS 4.x, bpt was required for all disk types, even though it was only used for SMD disks.
And this identifier is for XY450 SMD Controllers Only
drive_type*
drive type (SMD) (just call this "xy450 drive type")
partition
Defines a partition table for a specific disk type. The partition table contains the partitioning information, plus a name that lets you refer to it in format(1M). The default data file contains default parition definitions for several kinds of disk drives. Add a partition definition if you repartitioned any of the disks on your system. Add as many partition definitions to the data file as you need.
Partition naming conventions differ in SunOS 4.x and in SunOS 5.x.
  1. x: the partitions are named as a ,b, c, d, e ,f, g, h.

  2. x: the partitions are referred to by numbers 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 .

EXAMPLES

Following is a sample disk_type and partition definition in format.dat file for SUN0535 disk device.
disk_type = "SUN0535" \
        : ctlr = SCSI : fmt_time = 4 \
        : ncyl = 1866 : acyl = 2 : pcyl = 2500 : nhead = 7 : nsect = 80 \
        : rpm = 5400
partition = "SUN0535" \
        : disk = "SUN0535" : ctlr = SCSI \
        : 0 = 0, 64400 : 1 = 115, 103600 : 2 = 0, 1044960 : 6 = 300, 876960

FILES

/etc/format.dat
default data file if format -x is not specified, nor is
there a format.dat file in the current directory.

File Formats..format.dat ( 4 ) SEE ALSO

format(1M)
Peripherals Administration
forward(4)

NAME

aliases, addresses, forward - addresses and aliases for sendmail

SYNOPSIS

/etc/mail/aliases
/etc/mail/aliases.dir
/etc/mail/aliases.pag
~/.forward

DESCRIPTION

These files contain mail addresses or aliases, recognized by sendmail(1M) for the local host:
/etc/passwd
Mail addresses (usernames) of local users.
/etc/aliases
Aliases for the local host, in ASCII format. This file can be edited to add, update, or delete local mail aliases.
/etc/aliases. { dir , pag}
The aliasing information from /etc/aliases, in binary, dbm format for use by sendmail(1M). The program newaliases(1), which is
..
invoked automatically by sendmail(1M), maintains these files.
/.forward
Addresses to which a user's mail is forwarded (see Automatic Forwarding, below).
In addition, the YP name services aliases map mail.aliases contains addresses and aliases available for use across the network.

Addresses

As distributed, sendmail(1M) supports the following types of addresses:

Local Usernames

username
Each local username is listed in the local host's /etc/passwd file.

Local Filenames

pathname
Messages addressed to the absolute pathname of a file are appended to that file.

Commands

|command
If the first character of the address is a vertical bar, ( | ), sendmail(1M) pipes the message to the standard input of the command the bar precedes.

DARPA-standard

username@domain

Addresses

If domain does not contain any `. ' (dots), then it is interpreted as the name of a host in the current domain. Otherwise, the message is passed to a mailhost that determines how to get to the specified domain. Domains are divided into subdomains separated by dots, with the top-level domain on the right. Top-level domains include:
.COM
Commercial organizations.
.EDU
Educational organizations.
.GOV
Government organizations.
.MIL
Military organizations.
For example, the full address of John Smith could be:
js@jsmachine.Podunk-U.EDU
if he uses the machine named jsmachine at Podunk University.

uucp Addresses

. . . [host!]host!username
These are sometimes mistakenly referred to as ``Usenet'' addresses. uucp(1C) provides links to numerous sites throughout the world for the remote copying of files.
Other site-specific forms of addressing can be added by customizing the sendmail.cf configuration file. See sendmail(1M) for details. Standard addresses are recommended.

Aliases Local Aliases

/etc/aliases is formatted as a series of lines of the form
aliasname : address,[address ]
aliasname is the name of the alias or alias group, and address is the address of a recipient in the group. Aliases can be nested. That is, an address can be the name of another alias group. Because of the way sendmail(1M) performs mapping from upper-case to lowercase, an address that is the name of another alias group must not contain any upper-case letters.
Lines beginning with white space are treated as continuation lines for the preceding alias. Lines beginning with # are comments.

Special Aliases

An alias of the form:
owner-aliasname : address
directs error-messages resulting from mail to aliasname to address ,instead of back to the person who sent the message.
An alias of the form:
aliasname ::include:pathname
with colons as shown, adds the recipients listed in the file pathname to the aliasname alias. This allows a private list to be maintained separately from the aliases file.

YP Domain Aliases

Normally, the aliases file on the master YP server is used for the mail.aliases YP map, which can be made available to every YP client. Thus, the /etc/mail/aliases** files on the various hosts in a network will one day be obsolete. Domain-wide aliases should ultimately be resolved into usernames on specific hosts. For example, if the following were in the domain-wide alias file:
jsmith:js@jsmachine
then any YP client could just mail to jsmith and not have to remember the machine and username for John Smith. If a YP alias does not resolve to an address with a specific host, then the name of the YP domain is used. There should be an alias of the domain name for a host in this case.
For example, the alias:
        jsmith:root
sends mail on a YP client to root@podunk-u if the name of the YP domain is podunk-u.

Automatic Forwarding

When an alias (or address) is resolved to the name of a user on the local host, .. sendmail(1M) checks for a
/.forward file, owned by the intended recipient, in that user's
home directory, and with universal read access. This file can contain one or more addresses or aliases as described above, each of which is sent a copy of the user's mail.
Care must be taken to avoid creating addressing loops in the ../.forward file. When forwarding mail between machines, be sure that the destination machine does not return the mail to the sender through the operation of any YP aliases. Otherwise, copies of the message may ``bounce.'' Usually, the solution is to change the YP alias to direct mail to the proper destination.
A backslash before a username inhibits further aliasing. For instance, to invoke the vaca-.. tion program, user js creates a
/.forward file that contains the line:
\js, "|/usr/ucb/vacation js"
so that one copy of the message is sent to the user, and another is piped into the vacation program.

FILES

/etc/passwd
/etc/mail/aliases
/etc/mail/sendmail.cf
..
 /.forward

SEE ALSO

vacation(1), newaliases(1), uucp(1C), sendmail(1M), dbm(3B)

NOTES

Because of restrictions in dbm(3B), a single alias cannot contain more than about 1000 characters. Nested aliases can be used to circumvent this limit.
fs(4)

NAME

default_fs, fs - specify the default file system type for local or remote file systems

DESCRIPTION

When file system administration commands have both specific and generic components (for example, fsck(1M)), the file system type must be specified. If it is not explicitly specified using the -F FSType command line option, the generic command looks in /etc/vfstab in order to determine the file system type, using the supplied raw or block device or mount point. If the file system type can not be determined by searching /etc/vfstab, the command will use the default file system type specified in either /etc/default/fs or /etc/dfs/dfstypes, depending on whether the file system is local or remote.
The default local file system type is specified in /etc/default/fs by a line of the form LOCAL=fstype (for example, LOCAL=ufs). The default remote file system type is determined by the first entry in the /etc/dfs/fstypes file.
File system administration commands will determine whether the file system is local or remote by examining the specified device name. If the device name starts with ``/'' (slash), it is considered to be local; otherwise it is remote.
The default file system types can be changed by editing the default files with a text editor.

FILES

/etc/vfstab
list of default parameters for each file system
/etc/default/fs
the default local file system type
/etc/dfs/fstypes the default remote file system type

SEE ALSO

fstypes(4), vfstab(4)
fs_ufs(4)

NAME

fs_ufs, inode_ufs, inode - format of a ufs file system volume

SYNOPSIS

#include <sys/param.h>
#include <sys/types.h>
#include <sys/fs/ufs_fs.h>
#include <sys/fs/ufs_inode.h>

DESCRIPTION

Standard ufs file system storage volumes have a common format for certain vital information. Every volume is divided into a certain number of blocks. The block size is a parameter of the file system. Sectors 0 to 15 contain primary and secondary bootstrapping programs.
The actual file system begins at sector 16 with the super-block. The layout of the superblock is defined by the header <sys/fs/ufs_fs.h>.
Each disk drive contains some number of file systems. A file system consists of a number of cylinder groups. Each cylinder group has inodes and data.
A file system is described by its super-block, and by the information in the cylinder group blocks. The super-block is critical data and is replicated before each cylinder group block to protect against catastrophic loss. This is done at file system creation time and the critical super-block data does not change, so the copies need not be referenced.
fs_clean indicates the state of the file system. The FSCLEAN state indicates an undamaged, cleanly unmounted file system. The FSACTIVE state indicates a mounted file system that has been updated. The FSSTABLE state indicates an idle mounted file system. It is not necessary to run fsck on any unmounted file systems with a state of FSCLEAN or FSSTABLE. mount (2)will return ENOSPC if a ufs file system with a state of FSACTIVE is being mounted for read-write.
To provide additional safeguard, fs_clean could be trusted only if fs_state contains a value equal to FSOKAY - fs_time, where FSOKAY is a constant integer. Otherwise, fs_clean is treated as though it contains the value of FSACTIVE.
Addresses stored in inodes are capable of addressing fragments of "blocks." File system blocks of at most, size MAXBSIZE can be optionally broken into 2, 4, or 8 pieces, each of which is addressable; these pieces may be DEV_BSIZE or some multiple of a DEV_BSIZE unit.
Large files consist exclusively of large data blocks. To avoid undue wasted disk space, the last data block of a small file is allocated only as many fragments of a large block as are necessary. The file system format retains only a single pointer to such a fragment, which is a piece of a single large block that has been divided. The size of such a fragment is determinable from information in the inode, using the blksize(fs, ip, lbn) macro.
The file system records space availability at the fragment level; aligned fragments are examined to determine block availability.
The root inode is the root of the file system. Inode 0 cannot be used for normal purposes and historically, bad blocks were linked to inode 1. Thus the root inode is 2 (inode 1 is no longer used for this purpose; however numerous dump tapes make this assumption, so we are stuck with it). The lost+found directory is given the next available inode when it is initially created by mkfs(1M).
fs_minfree gives the minimum acceptable percentage of file system blocks which may be free. If the freelist drops below this level only the super-user may continue to allocate blocks. fs_minfree may be set to 0 if no reserve of free blocks is deemed necessary, however severe performance degradations will be observed if the file system is run at greater than 90% full; thus the default value of fs_minfree is 10%.
Empirically the best trade-off between block fragmentation and overall disk utilization at a loading of 90% comes with a fragmentation of 8; thus the default fragment size is an eighth of the block size.
fs_optim specifies whether the file system should try to minimize the time spent allocating blocks, or if it should attempt to minimize the space fragmentation on the disk. If the value of fs_minfree is less than 10%, then the file system defaults to optimizing for space to avoid running out of full sized blocks. If the value of fs_minfree is greater than or equal to 10%, fragmentation is unlikely to be problematical, and the file system defaults to optimizing for time.
Cylinder group related limits: Each cylinder keeps track of the availability of blocks at different rotational positions, so that sequential blocks can be laid out with minimum rotational latency. fs_nrpos is the number of rotational positions which are distinguished. With the default fs_nrpos of 8, the resolution of the summary information is 2ms for a typical 3600 rpm drive.
fs_rotdelay gives the minimum number of milliseconds to initiate another disk transfer on the same cylinder. It is used in determining the rotationally optimal layout for disk blocks within a file; the default value for fs_rotdelay varies from drive to drive (see tunefs(1M)).
fs_maxcontig gives the maximum number of blocks, belonging to one file, that will be allocated contiguously before inserting a rotational delay.
Each file system has a statically allocated number of inodes. An inode is allocated for each NBPI bytes of disk space. The inode allocation strategy is extremely conservative.
MINBSIZE is the smallest allowable block size. With a MINBSIZE of 4096 it is possible to create files of size 2^32 with only two levels of indirection. MINBSIZE must be large enough to hold a cylinder group block, thus changes to (struct cg) must keep its size within MINBSIZE. Note: super-blocks are never more than size SBSIZE.
The path name on which the file system is mounted is maintained in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in the super-block for this name.
The limit on the amount of summary information per file system is defined by MAXCSBUFS. It is currently parameterized for a maximum of two million cylinders.
Per cylinder group information is summarized in blocks allocated from the first cylinder group's data blocks. These blocks are read in from fs_csaddr (size fs_cssize) in addition to the super-block.
Note: sizeof (struct csum) must be a power of two in order for the fs_cs macro to work.
The inode is the focus of all file activity in the file system. There is a unique inode allocated for each active file, each current directory, each mounted-on file, text file, and the root. An inode is "named" by its device/i-number pair. For further information, see the header <sys/fs/ufs_inode.h>.

SEE ALSO

fsck_ufs(1M), mkfs_ufs(1M), mount (2)
fspec(4)

NAME

fspec - format specification in text files

DESCRIPTION

It is sometimes convenient to maintain text files on the system with non-standard tabs, (tabs that are not set at every eighth column). Such files must generally be converted to a standard format, frequently by replacing all tabs with the appropriate number of spaces, before they can be processed by system commands. A format specification occurring in the first line of a text file specifies how tabs are to be expanded in the remainder of the file.
A format specification consists of a sequence of parameters separated by blanks and surrounded by the brackets <: and :>. Each parameter consists of a keyletter, possibly followed immediately by a value. The following parameters are recognized:
ttabs
The t parameter specifies the tab settings for the file. The value of tabs must be one of the following:
A list of column numbers separated by commas,
indicating tabs set at the specified columns
A '--' followed immediately by an integer
n, indicating tabs at intervals of n columns
A '--' followed by the name of a ``canned'' tab specification
Standard tabs are specified by t--8 ,or equivalently, t1,9,17,25, etc. The canned tabs that are recognized are defined by the tabs(1) command.
ssize
The s parameter specifies a maximum line size. The value of size must be an integer. Size checking is performed after tabs have been expanded, but before the margin is prepended.
mmargin The m parameter specifies a number of spaces to be prepended to each line.
The value of margin must be an integer.
d
The d parameter takes no value. Its presence indicates that the line containing the format specification is to be deleted from the converted file.
e
The e parameter takes no value. Its presence indicates that the current format is to prevail only until another format specification is encountered in the file.
Default values, which are assumed for parameters not supplied, are t--8 and m0. If the s parameter is not specified, no size checking is performed. If the first line of a file does not contain a format specification, the above defaults are assumed for the entire file. The following is an example of a line containing a format specification:
* <:t5,10,15 s72:> *
If a format specification can be disguised as a comment, it is not necessary to code the d parameter.

SEE ALSO

ed(1), newform(1), tabs(1)
fstypes(4)

NAME

fstypes - file that registers distributed file system packages

DESCRIPTION

fstypes resides in directory /etc/dfs and lists distributed file system utilities packages installed on the system. For each installed distributed file system type, there is a line that begins with the file system type name (for example, ``nfs''), followed by white space and descriptive text.
The file system indicated in the first line of the file is the default file system; when Distributed File System (DFS) Administration commands are entered without the option -F fstypes, the system takes the file system type from the first line of the fstypes file.
The default file system can be changed by editing the fstypes file with any supported text editor.

SEE ALSO

dfmounts(1M), dfshares(1M), share(1M), shareall(1M), unshare(1M)
group(4)

NAME

group - group file

DESCRIPTION

The group file is a local source of group information. The group file can be used in conjunction with other group sources, including the NIS maps group.byname and group.bygid and the NIS+ table group. Programs use the getgrnam(3C) routines to access this information.
The group file contains a one-line entry for each group recognized by the system, of the form:
        groupname: password: gid: user-list
groupname             The name of the group.
gid                   The group's unique numerical ID within the system.
user-list             A comma-separated list of users allowed in the group.
If the password field is empty, no password is demanded. During user identification and authentication, the supplementary group access list is initialized sequentially from information in this file. If a user is in more groups than the system is configured for, {NGROUPS_MAX}, a warning will be given and subsequent group specifications will be ignored.
Malformed entries cause routines that read this file to halt, in which case group assignments specified further along are never made. To prevent this from happening, use grpck(1B) to check the /etc/group database from time to time.
Previous releases used a group entry beginning with a `+' (plus sign) or `--' (minus sign) to selectively incorporate entries from NIS maps for group. If still required, this is supported by specifying group:compat in nsswitch.conf(4). The ``compat'' source may not be supported in future releases. The preferred sources are, ``files'' followed by ``nisplus''. This has the effect of incorporating the entire contents of the NIS+ group table after the group file.

EXAMPLES

Here is a sample group file:
root::0:root
stooges:q.mJzTnu8icF.:10:larry,moe,curly
and the sample group entry from nsswitch.conf:
group: files nisplus
With these entries, the group stooges will have members larry, moe, and curly, and all groups listed in the NIS+ group table are effectively incorporated after the entry for stooges.
If the group file was:
root::0:root
stooges:q.mJzTnu8icF.:10:larry,moe,curly
+:
and the group entry from nsswitch.conf:
group: compat
all the groups listed in the NIS group.bygid and group.byname maps would be effectively incorporated after the entry for stooges.

SEE ALSO

groups(1), grpck(1B), newgrp (1M),getgrnam(3C), initgroups(3C), nsswitch.conf(4), unistd(4)
holidays(4)

NAME

holidays - prime/nonprime table for the accounting system

SYNOPSIS

/etc/acct/holidays

DESCRIPTION

The /etc/acct/holidays file describes which hours are considered prime time and which days are holidays. Holidays and weekends are considered non-prime time hours. /etc/acct/holidays is used by the accounting system.
All lines beginning with an "** "are comments.
The /etc/acct/holidays file consists of two sections. The first non-comment line defines the current year and the start time of prime and non-prime time hours, in the form:
current_year
prime_start
non_prime_start
The remaining non-comment lines define the holidays in the form:
month/day
company_holiday
Of these two fields, only the month/day is actually used by the accounting system programs.
The /etc/acct/holidays file must be updated each year.

EXAMPLES

The following is an example of the /etc/acct/holidays file:
* Prime/Nonprime Table for the accounting system
*
* Curr Prime Non-Prime
* Year Start    Start
*
 1991  0830    1800
*
* only the first column (month/day) is significant.
*
* month/day     Company
*               Holiday
*
1/1             New Years Day
5/30            Memorial Day
7/4             Indep. Day
9/5             Labor Day
11/24           Thanksgiving Day
11/25           day after Thanksgiving
12/25           Christmas
12/26           day after Christmas

SEE ALSO

acct(1M)
hosts(4)

NAME

hosts - host name database

SYNOPSIS

/etc/inet/hosts
/etc/hosts

DESCRIPTION

The hosts file is a local database that associates the names of hosts with their Internet Protocol (IP) addresses. The hosts file can be used in conjunction with, or instead of, other hosts databases, including the Domain Name System (DNS), the NIS hosts map and the NIS+ hosts table. Programs use library interfaces to access information in the hosts file.
The hosts file has one entry for each IP address of each host. If a host has more than one IP address, it will have one entry for each. The format of each line is:
IP-address
official-host-name
nicknames . . .
Items are separated by any number of SPACE and/or TAB characters. The first item on a line is the host's IP address. The second entry is the host's official name. Subsequent entries on the same line are alternative names for the same machine, or "nicknames." Nicknames are optional. A `# 'indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines that search the file.
Network addresses are written in the conventional "decimal dot" notation and interpreted using the inet_addr routine from the Internet address manipulation library, inet(3N). Host names may contain any printable character other than a field delimiter, NEWLINE, or comment character. It is recommended that host names not contain `.' (dot).

EXAMPLES

Here is a typical line from the hosts file:
  1. 9.1.20 gaia

    # John Smith

SEE ALSO

in.named(1M), gethostbyname (3N),inet(3N), nsswitch.conf(4) resolv.conf(4),

NOTES

/etc/inet/hosts is the official SVR4 name of the hosts file. The symbolic link /etc/hosts exists for BSD compatibility.
hosts.equiv(4)

NAME

hosts.equiv, .rhosts - trusted remote hosts and users

DESCRIPTION

The /etc/hosts.equiv and .rhosts files provide the ``remote authentication'' database for rlogin(1), rsh(1), rcp(1), and rcmd(3N). The files specify remote hosts and users that are considered trusted. Trusted users are allowed to access the local system without supplying a password. The library routine ruserok( ) (see rcmd(3N)) performs the authentication procedure for programs by using the /etc/hosts.equiv and .rhosts files. The /etc/hosts.equiv file applies to the entire system, while individual users can maintain their own .rhosts files in their home directories.
These files bypass the standard password-based user authentication mechanism. To maintain system security, care must be taken in creating and maintaining these files.
The remote authentication procedure determines whether a user from a remote host should be allowed to access the local system with the identity of a local user. This procedure first checks the /etc/hosts.equiv file and then checks the .rhosts file in the home directory of the local user who is requesting access. Entries in these files can be of two forms. Positive entries allow access, while negative entries deny access. The authentication succeeds when a matching positive entry is found. The procedure fails when the first matching negative entry is found, or if no matching entries are found in either file. Thus, the order of entries is important; If the files contain positive and negative entries, the entry that appears first will prevail. The rsh(1) and rcp(1) programs fail if the remote authentication procedure fails. The rlogin program falls back to the standard passwordbased login procedure if the remote authentication fails.
Both files are formatted as a list of one-line entries. Each entry has the form:
hostname [username]
Negative entries are differentiated from positive entries by a `-' character preceding either the hostname or username field.

Positive Entries

If the form:
hostname
is used, then users from the named host are trusted. That is, they may access the system with the same user name as they have on the remote system. This form may be used in both the /etc/hosts.equiv and .rhosts files.
If the line is in the form:
hostname username
then the named user from the named host can access the system. This form may be used in individual .rhosts files to allow remote users to access the system as a different local user. If this form is used in the /etc/hosts.equiv file, the named remote user will be allowed to access the system as any local user.
netgroup(4) can be used in either the hostname or username fields to match a number of hosts or users in one entry. The form:
+@netgroup
allows access from all hosts in the named netgroup. When used in the username field, netgroups allow a group of remote users to access the system as a particular local user. The form:
hostname +@netgroup
allows all of the users in the named netgroup from the named host to access the system as the local user. The form:
+@netgroup1 +@netgroup2
allows the users in netgroup2 from the hosts in netgroup1 to access the system as the local user.
The special character `+' can be used in place of either hostname or username to match any host or user. For example, the entry
+
will allow a user from any remote host to access the system with the same username. The entry
+ username
will allow the named user from any remote host to access the system. The entry
hostname +
will allow any user from the named host to access the system as the local user.

Negative Entries

Negative entries are preceded by a `/-' sign. The form:
-hostname
will disallow all access from the named host. The form:
-@netgroup
means that access is explicitly disallowed from all hosts in the named netgroup. The form:
hostname -username
disallows access by the named user only from the named host, while the form:
+ -@netgroup
will disallow access by all of the users in the named netgroup from all hosts.

FILES

/etc/hosts.equiv
~/.rhosts

SEE ALSO

rcp(1), rlogin(1), rsh(1), rcmd(3N), hosts(4), netgroup(4), passwd(4)

NOTES

Hostnames in /etc/hosts.equiv and .rhosts files must be the official name of the host, not one of its nicknames.
Root access is handled as a special case. Only the .rhosts file is checked when access is being attempted for root. To help maintain system security, the /etc/hosts.equiv file is not checked.
As a security feature, the .rhosts file must be owned by the user who is attempting access.
Positive entries in /etc/hosts.equiv that include a username field (either an individual named user, a netgroup, or `+' sign) should be used with extreme caution. Because /etc/hosts.equiv applies system-wide, these entries allow one, or a group of, remote users to access the system as any local user. This can be a security hole.
inetd.conf(4)

NAME

inetd.conf - Internet servers database

SYNOPSIS

/etc/inet/inetd.conf
/etc/inetd.conf

DESCRIPTION

The inetd.conf file contains the list of servers that inetd(1M) invokes when it receives an Internet request over a socket. Each server entry is composed of a single line of the form:
service-name endpoint-type protocol wait-status uid server-program server-arguments
Fields are separated by either SPACE or TAB characters. A `# '(number sign) indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines that search this file.
service-name
The name of a valid service listed in the services file. For RPC services, the value of the service-name field consists of the RPC service name or program number, followed by a '/' (slash) and either a version number or a range of version numbers (for example, rstatd/2-4).
endpoint-type
Can be one of:
stream
for a stream socket,
dgram
for a datagram socket,
raw
for a raw socket,
seqpacket
for a sequenced packet socket
tli
for all tli endpoints
protocol
Must be a recognized protocol listed in the file /etc/inet/protocols. For RPC services, the field consists of the string rpc followed by a '/' (slash) and either a '* '(asterisk), one or more nettypes, one or more netids, or a combination of nettypes and netids. Whatever the value, it is first treated as a nettype. If it is not a valid nettype, then it is treated as a netid. For example, rpc/* for an RPC service using all the transports supported by the system (the list can be found in the /etc/netconfig file), equivalent to saying rpc/visible rpc/ticots for an RPC service using the Connection-Oriented Transport Service.
wait-status
nowait for all but "single-threaded" datagram servers -- servers which do not release the socket until a timeout occurs. These must have the status wait. Do not configure udp services as nowait. This will cause a race condition where the inetd program selects on the socket and the server program reads from the socket. Many server programs will be forked and performance will be severly compromised.
uid
The user ID under which the server should run. This allows
servers to run with access privileges other than those for root.
server-program
Either the pathname of a server program to be invoked by inetd to
perform the requested service, or the value internal if inetd itself provides the service.
server-arguments
If a server must be invoked with command line arguments, the entire command line (including argument 0) must appear in this field (which consists of all remaining words in the entry). If the server expects inetd to pass it the address of its peer (for compatibility with 4.2 BSDexecutable daemons), then the first argument to the command should be specified as `%A'. No more than five arguments are allowed in this field.

FILES

/etc/netconfig
network configuration file
/etc/inet/protocols
Internet protocols
/etc/inet/services
Internet network services

SEE ALSO

rlogin(1), rsh(1), in.tftpd(1M), inetd(1M), services(4)

NOTES

/etc/inet/inetd.conf is the official SVR4 name of the inetd.conf file. The symbolic link /etc/inetd.conf exists for BSD compatibility.
init.d(4)

NAME

init.d - initialization and termination scripts for changing init states

SYNOPSIS

/etc/init.d

DESCRIPTION

/etc/init.d is a directory containing initialization and termination scripts for changing init states. These scripts are linked when appropriate to files in the rc?.d directories, where `?' is a single character corresponding to the init state. See init(1M) for definitions of the states.
File names in rc?.d directories are of the form [SK]nn<init.d filename> ,where S means start this job, K means kill this job, and nn is the relative sequence number for killing or starting the job. When entering a state (init S,0,2,3,etc.) the rc[S0-6] script executes those scripts in /etc/rc[S0-6].d that are prefixed with K followed by those scripts prefixed with S. When executing each script in one of the /etc/rc[S0-6] directories, the /sbin/rc[S0-6] script passes a single argument. It passes the argument 'stop' for scripts prefixed with K and the argument 'start' for scripts prefixed with S. There is no harm in applying the same sequence number to multiple scripts. In this case the order of execution is deterministic but unspecified.
Guidelines for selecting sequence numbers are provided in README files located in the directory associated with that target state. For example, /etc/rc[S0-6].d/README. Absence of a README file indicates that there are currently no established guidelines.

EXAMPLES

When changing to init state 2 (multi-user mode, network resources not exported), /sbin/rc2 is initiated by the init process. The following steps are performed by /sbin/rc2.
  1. In the directory /etc/rc2.d are files used to stop processes that should not be running in state 2. The filenames are prefixed with K. Each K file in the directory is executed (by /sbin/rc2) in alpha-numeric order when the system enters init state 2. See example below.

  2. Also in the rc2.d directory are files used to start processes that should be running in state 2. As in the Step 1, each S file is executed.

    Assume the file /etc/netdaemon is a script that will initiate networking daemons when given the argument argument 'stop'. It is linked to

    /etc/rc2.d/S68netdaemon, and to /etc/rc0.d/K67netdaemon. The file is executed by /etc/rc2.d/S68netdaemon start when init state 2 is entered and by /etc/rc0.d/S67netdaemon stop when shutting the system down.

SEE ALSO

init(1M)

NOTES

/sbin/rc2 has references to the obsolescent rc.d directory. These references are for compatibility with old INSTALL scripts. New INSTALL scripts should use the init.d directory for related executables. The same is true for the shutdown.d directory.
inittab(4)

NAME

inittab - script for init

DESCRIPTION

The file /etc/inittab controls process dispatching by init. The processes most typically dispatched by init are daemons.
The inittab file is composed of entries that are position dependent and have the following format:
id: rstate: action: process
Each entry is delimited by a newline; however, a backslash (\) preceding a newline indicates a continuation of the entry. Up to 512 characters for each entry are permitted. Comments may be inserted in the process field using the convention for comments described in sh(1). There are no limits (other than maximum entry size) imposed on the number of entries in the inittab file. The entry fields are:
id
One or two characters used to uniquely identify an entry.
rstate
Define the run level in which this entry is to be processed. Run-levels effectively correspond to a configuration of processes in the system. That is, each process spawned by init is assigned a run level(s) in which it is allowed to exist. The run levels are represented by a number ranging from 0 through 6 . For example, if the system is in run level 1 ,only those entries having a 1 in the rstate field are processed.
When init is requested to change run levels, all processes that do not have an entry in the rstate field for the target run level are sent the warning signal SIGTERM and allowed a 5-second grace period before being forcibly terminated by the kill signal SIGKILL . The rstate field can define multiple run levels for a process by selecting more than one run level in any combination from 0 through 6 . If no run level is specified, then the process is assumed to be valid at all run levels 0 through 6 .
There are three other values, a ,b and c, which can appear in the rstate field, even though they are not true run levels. Entries which have these characters in the rstate field are processed only when an init or telinit process requests them to be run (regardless of the current run level of the system). See init(1M). These differ from run levels in that init can never enter run level a ,b or c. Also, a request for the execution of any of these processes does not change the current run level. Furthermore, a process started by an a ,b or c command is not killed when init changes levels. They are killed only if their line in inittab is marked off in the action field, their line is deleted entirely from inittab, or init goes into single-user state.
action
Key words in this field tell init how to treat the process specified in the process field. The actions recognized by init are as follows:
respawn
If the process does not exist, then start the process; do not wait for its termination (continue scanning the inittab file), and when the process dies, restart the process. If the process currently exists, do nothing and continue scanning the inittab file.
wait
When init enters the run level that matches the entry's rstate, start the process and wait for its termination. All subsequent reads of the inittab file while init is in the same run level cause init to ignore this entry.
once
When init enters a run level that matches the entry's rstate, start the process, do not wait for its termination. When it dies, do not restart the process. If init enters a new run level and the process is still running from a previous run level change, the program is not restarted.
boot
The entry is to be processed only at init's boot-time read of the inittab file. init is to start the process and not wait for its termination; when it dies, it does not restart the process. In order for this instruction to be meaningful, the rstate should be the default or it must match init's run level at boot time. This action is useful for an initialization function following a hardware reboot of the system.
bootwait
The entry is to be processed the first time init goes from single-user to multi-user state after the system is booted. (If initdefault is set to 2 ,the process runs right after the boot.) init starts the process, waits for its termination and, when it dies, does not restart the process.
powerfail
Execute the process associated with this entry only when init receives a power fail signal, SIGPWR (see signal(3C)).
powerwait Execute the process associated with this entry only when init
receives a power fail signal, SIGPWR ,and wait until it terminates before continuing any processing of inittab.
off
If the process associated with this entry is currently running, send the warning signal SIGTERM and wait 5 seconds before forcibly terminating the process with the kill signal SIGKILL . If the process is nonexistent, ignore the entry.
ondemand This instruction is really a synonym for the respawn action. It is
functionally identical to respawn but is given a different keyword in order to divorce its association with run levels. This instruction is used only with the a ,b or c values described in the rstate field.
initdefault An entry with this action is scanned only when init is initially
invoked. init uses this entry to determine which run level to enter initially. It does this by taking the highest run level specified in the rstate field and using that as its initial state. If the rstate field is empty, this is interpreted as 0123456 and init will enter run level 6 . This will cause the system to loop (it will go to firmware and reboot continuously). Additionally, if init does not find an initdefault entry in inittab, it requests an initial run level from the user at reboot time.
sysinit
Entries of this type are executed before init tries to access the console (that is, before the Console Login: prompt). It is expected that this entry will be used only to initialize devices that init might try to ask the run level question. These entries are executed and init waits for their completion before continuing.
process
Specify a command to be executed. The entire process field is prefixed with exec and passed to a forked sh as sh -c .exec command.. For this reason, any legal sh syntax can appear in the process field.

SEE ALSO

sh(1), who (1),init(1M), ttymon(1M), exec(2), open(2), signal(3C)
inode(4)

NAME

fs_ufs, inode_ufs, inode - format of a ufs file system volume

SYNOPSIS

#include <sys/param.h>
#include <sys/types.h>
#include <sys/fs/ufs_fs.h>
#include <sys/fs/ufs_inode.h>

DESCRIPTION

Standard ufs file system storage volumes have a common format for certain vital information. Every volume is divided into a certain number of blocks. The block size is a parameter of the file system. Sectors 0 to 15 contain primary and secondary bootstrapping programs.
The actual file system begins at sector 16 with the super-block. The layout of the superblock is defined by the header <sys/fs/ufs_fs.h>.
Each disk drive contains some number of file systems. A file system consists of a number of cylinder groups. Each cylinder group has inodes and data.
A file system is described by its super-block, and by the information in the cylinder group blocks. The super-block is critical data and is replicated before each cylinder group block to protect against catastrophic loss. This is done at file system creation time and the critical super-block data does not change, so the copies need not be referenced.
fs_clean indicates the state of the file system. The FSCLEAN state indicates an undamaged, cleanly unmounted file system. The FSACTIVE state indicates a mounted file system that has been updated. The FSSTABLE state indicates an idle mounted file system. It is not necessary to run fsck on any unmounted file systems with a state of FSCLEAN or FSSTABLE. mount (2)will return ENOSPC if a ufs file system with a state of FSACTIVE is being mounted for read-write.
To provide additional safeguard, fs_clean could be trusted only if fs_state contains a value equal to FSOKAY - fs_time, where FSOKAY is a constant integer. Otherwise, fs_clean is treated as though it contains the value of FSACTIVE.
Addresses stored in inodes are capable of addressing fragments of "blocks." File system blocks of at most, size MAXBSIZE can be optionally broken into 2, 4, or 8 pieces, each of which is addressable; these pieces may be DEV_BSIZE or some multiple of a DEV_BSIZE unit.
Large files consist exclusively of large data blocks. To avoid undue wasted disk space, the last data block of a small file is allocated only as many fragments of a large block as are necessary. The file system format retains only a single pointer to such a fragment, which is a piece of a single large block that has been divided. The size of such a fragment is determinable from information in the inode, using the blksize(fs, ip, lbn) macro.
The file system records space availability at the fragment level; aligned fragments are examined to determine block availability.
The root inode is the root of the file system. Inode 0 cannot be used for normal purposes and historically, bad blocks were linked to inode 1. Thus the root inode is 2 (inode 1 is no longer used for this purpose; however numerous dump tapes make this assumption, so we are stuck with it). The lost+found directory is given the next available inode when it is initially created by mkfs(1M).
fs_minfree gives the minimum acceptable percentage of file system blocks which may be free. If the freelist drops below this level only the super-user may continue to allocate blocks. fs_minfree may be set to 0 if no reserve of free blocks is deemed necessary, however severe performance degradations will be observed if the file system is run at greater than 90% full; thus the default value of fs_minfree is 10%.
Empirically the best trade-off between block fragmentation and overall disk utilization at a loading of 90% comes with a fragmentation of 8; thus the default fragment size is an eighth of the block size.
fs_optim specifies whether the file system should try to minimize the time spent allocating blocks, or if it should attempt to minimize the space fragmentation on the disk. If the value of fs_minfree is less than 10%, then the file system defaults to optimizing for space to avoid running out of full sized blocks. If the value of fs_minfree is greater than or equal to 10%, fragmentation is unlikely to be problematical, and the file system defaults to optimizing for time.
Cylinder group related limits: Each cylinder keeps track of the availability of blocks at different rotational positions, so that sequential blocks can be laid out with minimum rotational latency. fs_nrpos is the number of rotational positions which are distinguished. With the default fs_nrpos of 8, the resolution of the summary information is 2ms for a typical 3600 rpm drive.
fs_rotdelay gives the minimum number of milliseconds to initiate another disk transfer on the same cylinder. It is used in determining the rotationally optimal layout for disk blocks within a file; the default value for fs_rotdelay varies from drive to drive (see tunefs(1M)).
fs_maxcontig gives the maximum number of blocks, belonging to one file, that will be allocated contiguously before inserting a rotational delay.
Each file system has a statically allocated number of inodes. An inode is allocated for each NBPI bytes of disk space. The inode allocation strategy is extremely conservative.
MINBSIZE is the smallest allowable block size. With a MINBSIZE of 4096 it is possible to create files of size 2^32 with only two levels of indirection. MINBSIZE must be large enough to hold a cylinder group block, thus changes to (struct cg) must keep its size within MINBSIZE. Note: super-blocks are never more than size SBSIZE.
The path name on which the file system is mounted is maintained in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in the super-block for this name.
The limit on the amount of summary information per file system is defined by MAXCSBUFS. It is currently parameterized for a maximum of two million cylinders.
Per cylinder group information is summarized in blocks allocated from the first cylinder group's data blocks. These blocks are read in from fs_csaddr (size fs_cssize) in addition to the super-block.
Note: sizeof (struct csum) must be a power of two in order for the fs_cs macro to work.
The inode is the focus of all file activity in the file system. There is a unique inode allocated for each active file, each current directory, each mounted-on file, text file, and the root. An inode is "named" by its device/i-number pair. For further information, see the header <sys/fs/ufs_inode.h>.

SEE ALSO

fsck_ufs(1M), mkfs_ufs(1M), mount (2)
inode_ufs(4)

NAME

fs_ufs, inode_ufs, inode - format of a ufs file system volume

SYNOPSIS

#include <sys/param.h>
#include <sys/types.h>
#include <sys/fs/ufs_fs.h>
#include <sys/fs/ufs_inode.h>

DESCRIPTION

Standard ufs file system storage volumes have a common format for certain vital information. Every volume is divided into a certain number of blocks. The block size is a parameter of the file system. Sectors 0 to 15 contain primary and secondary bootstrapping programs.
The actual file system begins at sector 16 with the super-block. The layout of the superblock is defined by the header <sys/fs/ufs_fs.h>.
Each disk drive contains some number of file systems. A file system consists of a number of cylinder groups. Each cylinder group has inodes and data.
A file system is described by its super-block, and by the information in the cylinder group blocks. The super-block is critical data and is replicated before each cylinder group block to protect against catastrophic loss. This is done at file system creation time and the critical super-block data does not change, so the copies need not be referenced.
fs_clean indicates the state of the file system. The FSCLEAN state indicates an undamaged, cleanly unmounted file system. The FSACTIVE state indicates a mounted file system that has been updated. The FSSTABLE state indicates an idle mounted file system. It is not necessary to run fsck on any unmounted file systems with a state of FSCLEAN or FSSTABLE. mount (2)will return ENOSPC if a ufs file system with a state of FSACTIVE is being mounted for read-write.
To provide additional safeguard, fs_clean could be trusted only if fs_state contains a value equal to FSOKAY - fs_time, where FSOKAY is a constant integer. Otherwise, fs_clean is treated as though it contains the value of FSACTIVE.
Addresses stored in inodes are capable of addressing fragments of "blocks." File system blocks of at most, size MAXBSIZE can be optionally broken into 2, 4, or 8 pieces, each of which is addressable; these pieces may be DEV_BSIZE or some multiple of a DEV_BSIZE unit.
Large files consist exclusively of large data blocks. To avoid undue wasted disk space, the last data block of a small file is allocated only as many fragments of a large block as are necessary. The file system format retains only a single pointer to such a fragment, which is a piece of a single large block that has been divided. The size of such a fragment is determinable from information in the inode, using the blksize(fs, ip, lbn) macro.
The file system records space availability at the fragment level; aligned fragments are examined to determine block availability.
The root inode is the root of the file system. Inode 0 cannot be used for normal purposes and historically, bad blocks were linked to inode 1. Thus the root inode is 2 (inode 1 is no longer used for this purpose; however numerous dump tapes make this assumption, so we are stuck with it). The lost+found directory is given the next available inode when it is initially created by mkfs(1M).
fs_minfree gives the minimum acceptable percentage of file system blocks which may be free. If the freelist drops below this level only the super-user may continue to allocate blocks. fs_minfree may be set to 0 if no reserve of free blocks is deemed necessary, however severe performance degradations will be observed if the file system is run at greater than 90% full; thus the default value of fs_minfree is 10%.
Empirically the best trade-off between block fragmentation and overall disk utilization at a loading of 90% comes with a fragmentation of 8; thus the default fragment size is an eighth of the block size.
fs_optim specifies whether the file system should try to minimize the time spent allocating blocks, or if it should attempt to minimize the space fragmentation on the disk. If the value of fs_minfree is less than 10%, then the file system defaults to optimizing for space to avoid running out of full sized blocks. If the value of fs_minfree is greater than or equal to 10%, fragmentation is unlikely to be problematical, and the file system defaults to optimizing for time.
Cylinder group related limits: Each cylinder keeps track of the availability of blocks at different rotational positions, so that sequential blocks can be laid out with minimum rotational latency. fs_nrpos is the number of rotational positions which are distinguished. With the default fs_nrpos of 8, the resolution of the summary information is 2ms for a typical 3600 rpm drive.
fs_rotdelay gives the minimum number of milliseconds to initiate another disk transfer on the same cylinder. It is used in determining the rotationally optimal layout for disk blocks within a file; the default value for fs_rotdelay varies from drive to drive (see tunefs(1M)).
fs_maxcontig gives the maximum number of blocks, belonging to one file, that will be allocated contiguously before inserting a rotational delay.
Each file system has a statically allocated number of inodes. An inode is allocated for each NBPI bytes of disk space. The inode allocation strategy is extremely conservative.
MINBSIZE is the smallest allowable block size. With a MINBSIZE of 4096 it is possible to create files of size 2^32 with only two levels of indirection. MINBSIZE must be large enough to hold a cylinder group block, thus changes to (struct cg) must keep its size within MINBSIZE. Note: super-blocks are never more than size SBSIZE.
The path name on which the file system is mounted is maintained in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in the super-block for this name.
The limit on the amount of summary information per file system is defined by MAXCSBUFS. It is currently parameterized for a maximum of two million cylinders.
Per cylinder group information is summarized in blocks allocated from the first cylinder group's data blocks. These blocks are read in from fs_csaddr (size fs_cssize) in addition to the super-block.
Note: sizeof (struct csum) must be a power of two in order for the fs_cs macro to work.
The inode is the focus of all file activity in the file system. There is a unique inode allocated for each active file, each current directory, each mounted-on file, text file, and the root. An inode is "named" by its device/i-number pair. For further information, see the header <sys/fs/ufs_inode.h>.

SEE ALSO

fsck_ufs(1M), mkfs_ufs(1M), mount (2)
isa(4)

NAME

sysbus, isa, eisa, mca - configuration files for ISA, EISA, and MCA bus device drivers

AVAILABILITY

x86

DESCRIPTION

Solaris for x86 platforms support the ISA, EISA, and MCA buses as the system bus. Drivers for devices on these buses use driver configuration files to inform the system that the device hardware may be present (see driver.conf(4) for more information). The configuration file must specify the device I/O port addresses, any interrupt capabilities that the device may have, any DMA channels it may require, and any memory-mapped addresses it may occupy.
Configuration files for ISA, EISA, and MCA device drivers should identify the parent nexus driver implicitly using the class keyword. This removes the dependency on the name of the particular nexus driver involved since most drivers can operate device controllers attached to any of those buses. The ISA, EISA, and MCA nexus drivers all belong to class sysbus. See driver.conf(4) for further details of configuration file syntax.
All bus drivers of class sysbus recognize the following properties:
intr
An arbitrary-length array where each element of the array consists of a pair of integers. Each array element describes a possible interrupt that the device might generate.
The first integer of each pair specifies the device's relative priority. This is the priority that this device's interrupt handler will receive relative to the interrupt handlers of other drivers. The priority is an integer from 1 to 16 . Generally, disks are assigned a priority of 5 ,while mice and printers are lower, and serial communication devices are higher, typically 7 . 10 is reserved by the system and must not be used. Interrupts 11 and greater are high level interrupts and are generally not recommended (see ddi_intr_hilevel(9F)).
The second integer of each pair denotes the hardware interrupt request (IRQ) number.
The driver can refer to the elements of this array by index using ddi_add_intr(9F). The index into the array is passed as the inumber argument of ddi_add_intr( ).
Only devices that generate interrupts need to provide intr properties.
reg
An arbitrary-length array where each element of the array consists of a 3-tuple of integers. Each array element describes a contiguous memory address range associated with the device on the bus.
The first integer of the tuple is reserved.
The driver can refer to the elements of this array by index, and construct kernel mappings to these addresses using ddi_map_regs(9F). The index into the array is passed as the rnumber argument of ddi_map_regs( ).
All sysbus device drivers must provide reg properties. The first two
integer elements of this property are used to construct the address part of the device name under /devices. If the device has memory-mapped addresses, the first integer should be 0 and the second integer should specify the physical address; if the device does not have memorymapped addresses, the first integer should specify a unique identifier and the second integer should be 0 . A recommended unique identifier is the ioaddr value; that is, specify the I/O address in both the ioaddr field and the first integer of the reg field. The third integer of each 3-tuple specifies the size, in bytes, of the mappable region.
It is recommended that drivers for devices connected to the system bus recognize the following standard property names:
ioaddr
An integer that describes the I/O port base address for this device.
dmachan
An integer that specifies the DMA channel used by this device. Only devices that use a DMA channel need to provide dmachan properties.

EXAMPLES

Here are three sample entries from three different driver.conf files:
name="fdc" class="sysbus" intr=5,6 ioaddr=0x3f0 dmachan=2 reg=0x3f0,0,0;
name="logi" class="sysbus" intr=1,4 ioaddr=0x23c reg=0x23c,0,0;
name="sbpro" class="sysbus" ioaddr=0x220 intr=5,7 dmachan=1 reg=0x220,0,0;

SEE ALSO

driver.conf(4), scsi(4), ddi_add_intr(9F), ddi_intr_hilevel(9F), ddi_map_regs(9F), ddi_prop_op(9F)
Writing Device Drivers
issue(4)

NAME

issue - issue identification file

DESCRIPTION

The file /etc/issue contains the issue or project identification to be printed as a login prompt. issue is an ASCII file that is read by program getty and then written to any terminal spawned or respawned from the lines file.

FILES

/etc/issue

SEE ALSO

login(1)
keytables(4)

NAME

keytables - keyboard table descriptions for loadkeys and dumpkeys

AVAILABILITY

SPARC

DESCRIPTION

These files are used by loadkeys(1) to modify the translation tables used by the keyboard streams module and generated by (see loadkeys(1)) from those translation tables.
Any line in the file beginning with # is a comment, and is ignored. # is treated specially only at the beginning of a line.
Other lines specify the values to load into the tables for a particular keystation. The format is either:
key number list_of_entries
or
swap number1 with number2
or
key number1 same as number2
or a blank line, which is ignored.
key number list_of_entries
sets the entries for keystation number from the list given. An entry in that list is of the form
tablename code
where tablename is the name of a particular translation table, or all. The translation tables are:
base
entry when no shifts are active
shift
entry when "Shift" key is down
caps
entry when "Caps Lock" is in effect
ctrl
entry when "Control" is down
altg
entry when "Alt Graph" is down
numl
entry when "Num Lock" is in effect
up
entry when a key goes up
All tables other than up refer to the action generated when a key goes down. Entries in the up table are used only for shift keys, since the shift in question goes away when the key goes up, except for keys such as "Caps Lock" or "Num Lock"; the keyboard streams module makes the key look as if it were a latching key.
A table name of all indicates that the entry for all tables should be set to the specified value, with the following exception: for entries with a value other than hole ,the entry for the numl table should be set to nonl, and the entry for the up table should be set to nop.
The code specifies the effect of the key in question when the specified shift key is down. A code consists of either:
A character, which indicates that the key should generate the given character. The character can either be a single character, a single character preceded by ^ which refers to a "control character" (for instance, ^c is control-C), or a C-style character constant enclosed in single quote characters ('), which can be expressed with C-style escape sequences such as \r for RETURN or \000 for the null character. Note that the single character may be any character in an 8-bit character set, such as ISO 8859/1.
A string, consisting of a list of characters enclosed in double quote characters ("). Note that the use of the double quote character means that a code of double quote must be enclosed in single quotes.
One of the following expressions:
shiftkeys+leftshift
the key is to be the left-hand "Shift" key
shiftkeys+rightshift
the key is to be the right-hand "Shift" key
shiftkeys+leftctrl
the key is to be the left-hand "Control" key
shiftkeys+rightctrl
the key is to be the right-hand "Control" key
shiftkeys+alt
the key is to be the "Alt" shift key
shiftkeys+altgraph
the key is to be the "Alt Graph" shift key
shiftkeys+capslock
the key is to be the "Caps Lock" key
shiftkeys+shiftlock
the key is to be the "Shift Lock" key
shiftkeys+numlock
the key is to be the "Num Lock" key
buckybits+systembit
the key is to be the "Stop" key in SunView; this is normally the L1 key, or the SETUP key on the VT100 keyboard
buckybits+metabit
the key is to be the "meta" key. That is, the "Left" or "Right" key on a Sun-2 or Sun-3 keyboard or the "diamond" key on a Sun-4 keyboard
compose
the key is to be the "Compose" key
ctrlq
on the "VT100" keyboard, the key is to transmit the control-Q character (this would be the entry for the "Q" key in the ctrl table)
ctrls
on the "VT100" keyboard, the key is to transmit the control-S character (this would be the entry for the "S" key in the ctrl table)
noscroll
on the "VT100" keyboard, the key is to be the "No Scroll" key
string+uparrow
the key is to be the "up arrow" key
string+downarrow
the key is to be the "down arrow" key
string+leftarrow
the key is to be the "left arrow" key
string+rightarrow
the key is to be the "right arrow" key
string+homearrow
the key is to be the "home" key
fa_acute
the key is to be the acute accent "floating accent" key
fa_cedilla
the key is to be the cedilla "floating accent" key
fa_cflex
the key is to be the circumflex "floating accent" key
fa_grave
the key is to be the grave accent "floating accent" key
fa_tilde
the key is to be the tilde "floating accent" key
fa_umlaut
the key is to be the umlaut "floating accent" key
nonl
this is used only in the Num Lock table; the key is not to be affected by the state of Num Lock
pad0
the key is to be the "0" key on the numeric keypad
pad1
the key is to be the "1" key on the numeric keypad
pad2
the key is to be the "2" key on the numeric keypad
pad3
the key is to be the "3" key on the numeric keypad
pad4
the key is to be the "4" key on the numeric keypad
pad5
the key is to be the "5" key on the numeric keypad
pad6
the key is to be the "6" key on the numeric keypad
pad7
the key is to be the "7" key on the numeric keypad
pad8
the key is to be the "8" key on the numeric keypad
pad9
the key is to be the "9" key on the numeric keypad
paddot the key is to be the "." key on the numeric keypad
padenter
the key is to be the "Enter" key on the numeric keypad
padplus
the key is to be the "+" key on the numeric keypad
padminus
the key is to be the "-" key on the numeric keypad
padstar
the key is to be the "* "key on the numeric keypad
padslash
the key is to be the "/" key on the numeric keypad
padequal
the key is to be the "=" key on the numeric keypad
padsep the key is to be the "," (separator) key on the numeric keypad
lf(n)
the key is to be the left-hand function key n
rf(n)
the key is to be the right-hand function key n
tf(n)
the key is to be the top function key n
bf(n)
the key is to be the "bottom" function key n
nop
the key is to do nothing
error
this code indicates an internal error; to be used only for keystation 126, and must be used there
idle
this code indicates that the keyboard is idle (that is, has no keys down); to be used only for all entries other than the numl and up table entries for keystation 127, and must be used there
oops
this key exists, but its action is not defined; it has the same effect as nop
reset
this code indicates that the keyboard has just been reset; to be used only for the up table entry for keystation 127, and must be used there.
swap number1 with number2
        exchanges the entries for keystations number1 and number2.
key number1 same as number2
sets the entries for keystation number1 to be the same as those for keystation number2. If the file does not specify entries for keystation number2, the entries currently in the translation table are used; if the file does specify entries for keystation number2, those entries are used.

EXAMPLES

The following entry sets keystation 15 to be a "hole" (that is, an entry indicating that there is no keystation 15); sets keystation 30 to do nothing when Alt Graph is down, generate "!" when Shift is down, and generate "1" under all other circumstances; and sets keystation 76 to be the left-hand Control key.
key 15
all hole
key 30
base 1 shift ! caps 1 ctrl 1 altg nop
key 76
all shiftkeys+leftctrl up shiftkeys+leftctrl
The following entry exchanges the Delete and Back Space keys on the Type 4 keyboard:
swap 43 with 66
Keystation 43 is normally the Back Space key, and keystation 66 is normally the Delete key.
The following entry disables the Caps Lock key on the Type 3 and U.S. Type 4 keyboards:
key 119 all nop
The following specifies the standard translation tables for the U.S. Type 4 keyboard:
key 0
all hole
key 1
all buckybits+systembit up buckybits+systembit
key 2
all hole
key 3
all lf(2)
key 4
all hole
key 5
all tf(1)
key 6
all tf(2)
key 7
all tf(10)
key 8
all tf(3)
key 9
all tf(11)
key 10
all tf(4)
key 11
all tf(12)
key 12
all tf(5)
key 13
all shiftkeys+altgraph up shiftkeys+altgraph
key 14
all tf(6)
key 15
all hole
key 16
all tf(7)
key 17
all tf(8)
key 18
all tf(9)
key 19
all shiftkeys+alt up shiftkeys+alt
key 20
all hole
key 21
all rf(1)
key 22
all rf(2)
key 23
all rf(3)
key 24
all hole
key 25
all lf(3)
key 26
all lf(4)
key 27
all hole
key 28
all hole
key 29
all ^[
key 30
base 1 shift ! caps 1 ctrl 1 altg nop
key 31
base 2 shift @ caps 2 ctrl ^@ altg nop
key 32
base 3 shift # caps 3 ctrl 3 altg nop
key 33
base 4 shift $ caps 4 ctrl 4 altg nop
key 34
base 5 shift % caps 5 ctrl 5 altg nop
key 35
base 6 shift ^ caps 6 ctrl ^^ altg nop
key 36
base 7 shift & caps 7 ctrl 7 altg nop
key 37
base 8 shift * caps 8 ctrl 8 altg nop
key 38
base 9 shift ( caps 9 ctrl 9 altg nop
key 39
base 0 shift ) caps 0 ctrl 0 altg nop
key 40
base - shift _ caps - ctrl ^_ altg nop
key 41
base = shift + caps = ctrl = altg nop
key 42
base ` shift ~ caps ` ctrl ^^ altg nop
key 43
all '\b'
key 44
all hole
key 45
all rf(4) numl padequal
key 46
all rf(5) numl padslash
key 47
all rf(6) numl padstar
key 48
all bf(13)
key 49
all lf(5)
key 50
all bf(10) numl padequal
key 51
all lf(6)
key 52
all hole
key 53
all '\t'
key 54
base q shift Q caps Q ctrl ^Q altg nop
key 55
base w shift W caps W ctrl ^W altg nop
key 56
base e shift E caps E ctrl ^E altg nop
key 57
base r shift R caps R ctrl ^R altg nop
key 58
base t shift T caps T ctrl ^T altg nop
key 59
base y shift Y caps Y ctrl ^Y altg nop
key 60
base u shift U caps U ctrl ^U altg nop
key 61
base i shift I caps I ctrl '\t' altg nop
key 62
base o shift O caps O ctrl ^O altg nop
key 63
base p shift P caps P ctrl ^P altg nop
key 64
base [ shift { caps [ ctrl ^[ altg nop
key 65
base ] shift } caps ] ctrl ^] altg nop
key 66
all '\177'
key 67
all compose
key 68
all rf(7) numl pad7
key 69
all rf(8) numl pad8
key 70
all rf(9) numl pad9
key 71
all bf(15) numl padminus
key 72
all lf(7)
key 73
all lf(8)
key 74
all hole
key 75
all hole
key 76
all shiftkeys+leftctrl up shiftkeys+leftctrl
key 77
base a shift A caps A ctrl ^A altg nop
key 78
base s shift S caps S ctrl ^S altg nop
key 79
base d shift D caps D ctrl ^D altg nop
key 80
base f shift F caps F ctrl ^F altg nop
key 81
base g shift G caps G ctrl ^G altg nop
key 82
base h shift H caps H ctrl '\b' altg nop
key 83
base j shift J caps J ctrl '\n' altg nop
key 84
base k shift K caps K ctrl '\v' altg nop
key 85
base l shift L caps L ctrl ^L altg nop
key 86
base ; shift : caps ; ctrl ; altg nop
key 87
base '\'' shift '"' caps '\'' ctrl '\'' altg nop
key 88
base '\\' shift | caps '\\' ctrl ^\ altg nop
key 89
all '\r'
key 90
all bf(11) numl padenter
key 91
all rf(10) numl pad4
key 92
all rf(11) numl pad5
key 93
all rf(12) numl pad6
key 94
all bf(8) numl pad0
key 95
all lf(9)
key 96
all hole
key 97
all lf(10)
key 98
all shiftkeys+numlock
key 99
all shiftkeys+leftshift up shiftkeys+leftshift
key 100 base z shift Z caps Z ctrl ^Z altg nop
key 101 base x shift X caps X ctrl ^X altg nop
key 102 base c shift C caps C ctrl ^C altg nop
key 103 base v shift V caps V ctrl ^V altg nop
key 104 base b shift B caps B ctrl ^B altg nop
key 105 base n shift N caps N ctrl ^N altg nop
key 106 base m shift M caps M ctrl '\r' altg nop
key 107 base , shift < caps , ctrl , altg nop
key 108 base . shift > caps . ctrl . altg nop
key 109 base / shift ? caps / ctrl ^_ altg nop
key 110 all shiftkeys+rightshift up shiftkeys+rightshift
key 111 all '\n'
key 112 all rf(13) numl pad1
key 113 all rf(14) numl pad2
key 114 all rf(15) numl pad3
key 115 all hole
key 116 all hole
key 117 all hole
key 118 all lf(16)
key 119 all shiftkeys+capslock
key 120 all buckybits+metabit up buckybits+metabit
key 121 base ' ' shift ' ' caps ' ' ctrl ^@ altg ' '
key 122 all buckybits+metabit up buckybits+metabit
key 123 all hole
key 124 all hole
key 125 all bf(14) numl padplus
key 126 all error numl error up hole
key 127 all idle numl idle up reset

SEE ALSO

loadkeys(1)
krb.conf(4)

NAME

krb.conf - Kerberos configuration file

SYNOPSIS

/etc/krb.conf

DESCRIPTION

krb.conf contains configuration information describing the Kerberos realm and the Kerberos key distribution center (KDC) servers for known realms.
krb.conf contains the name of the local realm in the first line, followed by lines indicating realm/host entries. The first token is a realm name, and the second is the hostname of a host running a KDC for that realm. There can be multiple lines for a given realm; the servers are tried in order until an active one is found. The words admin server following the hostname indicate that the host also provides an administrative database server. For example:
ATHENA.MIT.EDU
ATHENA.MIT.EDU kerberos-1.mit.edu admin server
ATHENA.MIT.EDU kerberos-2.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu admin server
The Kerberos configuration information can also be supplied using the krb.conf NIS map. If /etc/krb.conf is not found (or the requested information is not found in it), and the system is running NIS, then the information will be obtained from the NIS map. If neither the file nor the NIS map are found, then the Kerberos library will use the domainname (as returned by domainname (1M))as the Kerberos realm, and the host kerberos as the location of the KDC. There is no default for the admin server.
Note that every time krb.conf is modified, kerbd(1M) needs to be restarted.

SEE ALSO

domainname (1M),kerbd(1M), ypmake(1M), krb.realms(4)

BUGS

There is no NIS+ support yet for the krb.conf map.
krb.realms(4)

NAME

krb.realms - host to Kerberos realm translation file

SYNOPSIS

/etc/krb.realms

DESCRIPTION

krb.realms provides a translation from a hostname to the Kerberos realm name for the services provided by that host.
Each line of the translation file is in one of the following forms:
host_name kerberos_realm
domain_name kerberos_realm
domain_name should be of the form .XXX.YYY, for example, .LCS.MIT.EDU.
If a hostname exactly matches the host_name field in a line of the first form, the corresponding kerberos_realm is used as the realm of the host. If a hostname does not match any host_name in the file, but its domain exactly matches the domain_name field in a line of the second form, the corresponding kerberos_realm is used as the realm of the host.
If no translation entry applies, the host's realm is considered to be the hostname's domain portion converted to upper case.

SEE ALSO

krb_realmofhost(3N)

BUGS

There is no NIS or NIS+ support for this information.
limits(4)

NAME

limits - header for implementation-specific constants

SYNOPSIS

#include <limits.h>

DESCRIPTION

The header <limits.h> is a list of minimal magnitude limitations imposed by a specific implementation of the operating system.
ARG_MAX          1048320               /** max length of arguments to exec ** /
CHAR_BIT         8                     /** max # of bits in a "char" ** /
CHAR_MAX         255                   /** max value of a "char" ** /
CHAR_MIN         0                     /** min value of a "char" ** /
CHILD_MAX        25                    /** max # of processes per user id ** /
CLK_TCK          _sysconf(3)           /** clock ticks per second ** /
DBL_DIG          15                    /** digits of precision of a "double" ** /
DBL_MAX          1.7976931348623157E+308/** max decimal value of a "double"** /
DBL_MIN          2.2250738585072014E-308/** min decimal value of a "double"** /
FCHR_MAX         1048576               /** historical default file size limit in bytes ** /
FLT_DIG          6                     /** digits of precision of a "float" ** /
FLT_MAX          3.40282347e+38F       /** max decimal value of a "float" ** /
FLT_MIN          1.17549435E-38F       /** min decimal value of a "float" ** /
INT_MAX          2147483647            /** max value of an "int" ** /
INT_MIN          (-2147483647-1)       /** min value of an "int" ** /
LINK_MAX         1000                  /** max # of links to a single file ** /
LOGNAME_MAX      8                     /** max # of characters in a login name ** /
LONG_BIT         32                    /** # of bits in a "long" ** /
LONG_MAX         2147483647            /** max value of a "long int" ** /
LONG_MIN         (-2147483647-1)       /** min value of a "long int" ** /
MAX_CANON        256                   /** max bytes in a line for canonical
                                       processing ** /
MAX_INPUT        512                   /** max size of a char input buffer ** /
MB_LEN_MAX       5                     /** max # of bytes in a multibyte
                                       character ** /
NAME_MAX         14                    /** max # of characters in a file name ** /
NGROUPS_MAX      16                    /** max # of groups for a user ** /
NL_ARGMAX        9                     /** max value of "digit" in calls to the
                                       NLS printf() and scanf() ** /
NL_LANGMAX       14                    /** max # of bytes in a LANG name ** /
NL_MSGMAX        32767                 /** max message number ** /
NL_NMAX          1                     /** max # of bytes in N-to-1 mapping
                                       characters ** /
NL_SETMAX        255                   /** max set number ** /
NL_TEXTMAX       255                   /** max # of bytes in a message string ** /
NZERO            20                    /** default process priority ** /
OPEN_MAX         20                    /** max # of files a process can have
                                       open ** /
PASS_MAX         8                     /** max # of characters in a password ** /
PATH_MAX         1024                  /** max # of characters in a path name ** /
PID_MAX          30000                 /** max value for a process ID ** /
PIPE_BUF         5120                  /** max # bytes atomic in write to a pipe ** /
PIPE_MAX         5120                  /** max # bytes written to a pipe
                                       in a write ** /
SCHAR_MAX        127                   /** max value of a "signed char" ** /
SCHAR_MIN        (-128)                /** min value of a "signed char" ** /
SHRT_MAX         32767                 /** max value of a "short int" ** /
SHRT_MIN         (-32768)              /** min value of a "short int" ** /
STD_BLK          1024                  /** # bytes in a physical I/O block ** /
SYS_NMLN         257                   /** 4.0 size of utsname elements ** /
                                       /** also defined in sys/utsname.h ** /
SYSPID_MAX       1                     /** max pid of system processes ** /
TMP_MAX          17576                 /** max # of unique names generated
                                       by tmpnam ** /
UCHAR_MAX        255                   /** max value of an "unsigned char" ** /
UID_MAX          60000                 /** max value for a user or group ID ** /
UINT_MAX         4294967295            /** max value of an "unsigned int" ** /
ULONG_MAX        4294967295            /** max value of an "unsigned long int" ** /
USHRT_MAX        65535                 /** max value of an "unsigned short int" ** /
USI_MAX          4294967295            /** max decimal value of an "unsigned" ** /
WORD_BIT         32                    /** # of bits in a "word" or "int" ** /
The following POSIX definitions are the most restrictive values to be used by a POSIX conformance application. Conforming implementations shall provide values at least this large.
_POSIX_ARG_MAX         4096  /** max length of arguments to exec ** /
_POSIX_CHILD_MAX       6     /** max # of processes per user ID ** /
_POSIX_LINK_MAX        8     /** max # of links to a single file ** /
_POSIX_MAX_CANON       255   /** max # of bytes in a line of input ** /
_POSIX_MAX_INPUT       255   /** max # of bytes in terminal
                             input queue ** /
_POSIX_NAME_MAX        14    /** # of bytes in a filename ** /
_POSIX_NGROUPS_MAX      0    /** max # of groups in a process ** /
_POSIX_OPEN_MAX        16    /** max # of files a process can have open ** /
_POSIX_PATH_MAX        255   /** max # of characters in a pathname ** /
_POSIX_PIPE_BUF        512   /** max # of bytes atomic in write
                             to a pipe ** /
loadfont(4)

NAME

loadfont - format of a font file used as input to the loadfont utility

AVAILABILITY

x86

DESCRIPTION

This section describes the format of files that can be used to change the font used by the console when using the loadfont(1) utility with the -f option.
The format is compatible with the Binary Distribution Format version 2.1 as developed by Adobe Systems, Inc.; however, certain restrictions apply. Video cards, when used with the Solaris for x86 system in text mode, only accept constant width and constant height fonts in certain sizes.
The loadfont utility also requires that there is a description of all 256 characters of the codeset used specified in the fontfile. Certain attributes are not used by loadfont but are maintained for compatibility purposes.

File Format

A loadfont input file is a plain ASCII file containing only printable characters (octal 40 through 176) and a carriage return at the end of each line.
The information about a particular font should be contained in a single file. The file begins with information on the font in general, followed by the information and bitmaps for the individual characters. The file should contain bitmaps for all 256 characters, and each character should be of the same size.
A font bitmap description file has the following general form, where each item is contained on a separate line of text in the file. Items on a line are separated by spaces:
One or more lines beginning with the word COMMENT . These lines can be used to add comments to the file and will be ignored by the loadfont program.
The word STARTFONT followed by the version number 2.1.
The word FONT followed by the full name of the font. The name may continue all the way to the end of the line, and may contain spaces.
The word SIZE followed by the point size of the characters, the x resolution, and the y resolution of the font. This line is not used by loadfont but it needs to be there for compatibility purposes.
The word FONTBOUNDINGBOX followed by the width in x, height in y, and the x and y displacement of the lower left-hand corner from the origin. Again, this line is not used by loadfont but it must be there for compatibility purposes.
Optionally, the word STARTPROPERTIES followed by the number of properties that follow. If present, the number needs to match the number of lines following this one before the occurrence of a line beginning with ENDPROPERTIES These lines consist of a word for the property name followed by either an integer or string surrounded by double quotes. Properties named FONT_ASCENT FONT_DESCENT and DEFAULT_CHAR are typically present in BDF files to define the logical font-ascent and font-descent and the default-char for the font.
As mentioned above, this section, if it exists, must be terminated by ENDPROPERTIES .
The word CHARS followed by the number of characters that follow. This number should always be 256 .
This terminates the part of the loadfont input file describing features of the font in general. The rest of the file contains descriptions of the individual characters. They consist of the following parts:
The word STARTCHAR followed by up to 14 characters (no blanks) describing the character. This can either be something like C0041, which indicates the hex value of the character or uppercaseA, which describes the character.
The word ENCODING followed by a positive integer representing value by which this character is represented internally in the codeset for which this font is used. The integer needs to be specified in decimal.
The word SWIDTH followed by the scalable width in x and y of character. Scalable widths are in units of 1/1000th of the size of the character. The y value should always be 0 ;the x value is typically 666 for the type of characters used with loadfont. The values are not checked by the loadfont utility, but this line needs to be there for compatibility purposes.
The word DWIDTH followed by two numbers, which in a BDF file would mean the width in x and y of the character in device units. The y value is always zero. The x value is typically 8. loadfont checks only for the presence of the DWIDTH keyword.
The word BBX followed by the width in x, height in y and x and y displacement of the lower left-hand corner from the origin of the character.
Most fonts used by video cards will not use the bottom 4 rows of pixels, which basically means a vertical (y) displacement of -4. The only width allowed by loadfont is 8; heights supported are 8, 14, and 16. All BBX lines of the subsequent characters should list the same height and width as the first one (because only fixed size fonts are supported).
The optional word ATTRIBUTES followed by the attributes as 4 hex-encoded characters. The loadfont utility will accept this line, if present, but there is no meaning attached to it.
The word BITMAP ,which indicates the beginning of the bitmap representation of the character. This line should be followed by height number of lines (height as specified in the BBX line) representing a hex-encoded bitmap of the character, one byte per line.
The word ENDCHAR indicating the end of the bitmap for this character.
After all the bitmaps, the end of the file is indicated by the ENDFONT keyword.

Example

The following example lists the beginning of the loadfont input file for an 8 by 16 font, supporting the IBM 437 codeset, as well as the bitmap representation of the character uppercase A.
STARTFONT 2.1
FONT 8x16
SIZE 16 75 75
FONTBOUNDINGBOX 8 16 0 -4
STARTPROPERTIES 3
FONT_DESCENT 4
FONT_ASCENT 12
DEFAULT_CHAR 0
ENDPROPERTIES
CHARS 256
STARTCHAR C0000
ENCODING 0
. . .
Bitmap for uppercase A character:
STARTCHAR C0041
ENCODING 65
SWIDTH 666 0
DWIDTH 8 0
BBX 8 16 0 -4
BITMAP
00
00
10
38
6c
c6
c6
fe
c6
c6
c6
c6
00
00
00
00
ENDCHAR

FILES

/usr/share/lib/* .bdf

SEE ALSO

loadfont(1)
logindevperm(4)

NAME

logindevperm, fbtab - login-based device permissions

SYNOPSIS

/etc/logindevperm

DESCRIPTION

The /etc/logindevperm file contains information that is used by login(1) and ttymon(1M) to change the owner, group, and permissions of devices upon logging into or out of a console device. By default, this file contains lines for the keyboard, mouse, audio, and frame buffer devices.
The owner of the devices listed in /etc/logindevperm is set to the owner of the console by login(1). The group of the devices is set to the owner's group specified in /etc/passwd. The permissions are set as specified in /etc/logindevperm.
Fields are separated by TAB and/or SPACE characters. Blank lines and comments can appear anywhere in the file; comments start with a hashmark, ` # ', and continue to the end of the line.
The first field specifies the name of a console device (for example, /dev/console). The second field specifies the permissions to which the devices in the device_list field (third field) will be set. A device_list is a colon-separated list of device names. A device entry that is a directory name and ends with "/* "specifies all entries in the directory (except "." and ".."). For example, "/dev/fbs/* "specifies all frame buffer devices.
Once the devices are owned by the user, their permissions and ownership can be changed using chmod(1) and chown(1), as with any other user-owned file.
Upon logout the owner and group of these devices will be reset by ttymon(1M) to owner root and root's group as specified in /etc/passwd (typically other). The permissions are set as specified in the /etc/logindevperm file.

FILES

/etc/passwd
File that contains user group information.

SEE ALSO

chmod(1), chown(1), login(1), ttymon(1M), passwd(4)

NOTES

/etc/logindevperm provides a superset of the functionality provided by /etc/fbtab in SunOS 4.x releases.
loginlog(4)

NAME

loginlog - log of failed login attempts

DESCRIPTION

After five unsuccessful login attempts, all the attempts are logged in the file /var/adm/loginlog. This file contains one record for each failed attempt. Each record contains the login name, tty specification, and time.
This is an ASCII file. Each field within each entry is separated from the next by a colon. Each entry is separated from the next by a new-line.
By default, loginlog does not exist, so no logging is done. To enable logging, the log file must be created with read and write permission for owner only. Owner must be root and group must be sys.

FILES

/var/adm/loginlog

SEE ALSO

login(1), passwd(1)
magic(4)

NAME

magic - file command's magic number file

SYNOPSIS

/etc/magic

DESCRIPTION

The file(1) command identifies the type of a file using, among other tests, a test for whether the file begins with a certain magic number. The /etc/magic file specifies what magic numbers are to be tested for, what message to print if a particular magic number is found, and additional information to extract from the file.
Each line of the file specifies a test to be performed. A test compares the data starting at a particular offset in the file with a 1-byte, 2-byte, or 4-byte numeric value or a string. If the test succeeds, a message is printed. The line consists of the following fields:
        offset  type    value   message
offset     A number specifying the offset, in bytes, into the file of the data which is to be
           tested.
type       The type of the data to be tested. The possible values are:
           byte    A one-byte value.
           short   A two-byte value.
           long    A four-byte value.
           string A string of bytes.
The types byte ,short, and long may optionally be followed by a mask specifier of the form &number. If a mask specifier is given, the value is AND'ed with the number before any comparisons are done. The number is specified in C form. For instance, 13 is decimal, 013 is octal, and 0x13 is hexadecimal.
value
The value to be compared with the value from the file. If the type is numeric, this value is specified in C form. If it is a string, it is specified as a C string with the usual escapes permitted (for instance, \n for NEWLINE).
Numeric values may be preceded by a character indicating the operation to be performed. It may be `=', to specify that the value from the file must equal the specified value, `<', to specify that the value from the file must be less than the specified value, `>', to specify that the value from the file must be greater than the specified value, `&', to specify that all the bits in the specified value must be set in the value from the file, `^', to specify that at least one of the bits in the specified value must not be set in the value from the file, or x to specify that any value will match. If the character is omitted, it is assumed to be `='.
For string values, the byte string from the file must match the specified byte string. The byte string from the file which is matched is the same length as the specified byte string.
message
The message to be printed if the comparison succeeds. If the string contains a printf(3S) format specification, the value from the file (with any specified masking performed) is printed using the message as the format string.
Some file formats contain additional information which is to be printed along with the file type. A line which begins with the character `>' indicates additional tests and messages to be printed. If the test on the line preceding the first line with a `>' succeeds, the tests specified in all the subsequent lines beginning with `>' are performed, and the messages printed if the tests succeed. The next line which does not begin with a `>' terminates this.

FILES

/etc/magic

SEE ALSO

file(1), file(1B), printf(3S)

BUGS

There should be more than one level of subtests, with the level indicated by the number of `>' at the beginning of the line.
mca(4)

NAME

sysbus, isa, eisa, mca - configuration files for ISA, EISA, and MCA bus device drivers

AVAILABILITY

x86

DESCRIPTION

Solaris for x86 platforms support the ISA, EISA, and MCA buses as the system bus. Drivers for devices on these buses use driver configuration files to inform the system that the device hardware may be present (see driver.conf(4) for more information). The configuration file must specify the device I/O port addresses, any interrupt capabilities that the device may have, any DMA channels it may require, and any memory-mapped addresses it may occupy.
Configuration files for ISA, EISA, and MCA device drivers should identify the parent nexus driver implicitly using the class keyword. This removes the dependency on the name of the particular nexus driver involved since most drivers can operate device controllers attached to any of those buses. The ISA, EISA, and MCA nexus drivers all belong to class sysbus. See driver.conf(4) for further details of configuration file syntax.
All bus drivers of class sysbus recognize the following properties:
intr
An arbitrary-length array where each element of the array consists of a pair of integers. Each array element describes a possible interrupt that the device might generate.
The first integer of each pair specifies the device's relative priority. This is the priority that this device's interrupt handler will receive relative to the interrupt handlers of other drivers. The priority is an integer from 1 to 16 . Generally, disks are assigned a priority of 5 ,while mice and printers are lower, and serial communication devices are higher, typically 7 . 10 is reserved by the system and must not be used. Interrupts 11 and greater are high level interrupts and are generally not recommended (see ddi_intr_hilevel(9F)).
The second integer of each pair denotes the hardware interrupt request (IRQ) number.
The driver can refer to the elements of this array by index using ddi_add_intr(9F). The index into the array is passed as the inumber argument of ddi_add_intr( ).
Only devices that generate interrupts need to provide intr properties.
reg
An arbitrary-length array where each element of the array consists of a 3-tuple of integers. Each array element describes a contiguous memory address range associated with the device on the bus.
The first integer of the tuple is reserved.
The driver can refer to the elements of this array by index, and construct kernel mappings to these addresses using ddi_map_regs(9F). The index into the array is passed as the rnumber argument of ddi_map_regs( ).
All sysbus device drivers must provide reg properties. The first two
integer elements of this property are used to construct the address part of the device name under /devices. If the device has memory-mapped addresses, the first integer should be 0 and the second integer should specify the physical address; if the device does not have memorymapped addresses, the first integer should specify a unique identifier and the second integer should be 0 . A recommended unique identifier is the ioaddr value; that is, specify the I/O address in both the ioaddr field and the first integer of the reg field. The third integer of each 3-tuple specifies the size, in bytes, of the mappable region.
It is recommended that drivers for devices connected to the system bus recognize the following standard property names:
ioaddr
An integer that describes the I/O port base address for this device.
dmachan
An integer that specifies the DMA channel used by this device. Only devices that use a DMA channel need to provide dmachan properties.

EXAMPLES

Here are three sample entries from three different driver.conf files:
name="fdc" class="sysbus" intr=5,6 ioaddr=0x3f0 dmachan=2 reg=0x3f0,0,0;
name="logi" class="sysbus" intr=1,4 ioaddr=0x23c reg=0x23c,0,0;
name="sbpro" class="sysbus" ioaddr=0x220 intr=5,7 dmachan=1 reg=0x220,0,0;

SEE ALSO

driver.conf(4), scsi(4), ddi_add_intr(9F), ddi_intr_hilevel(9F), ddi_map_regs(9F), ddi_prop_op(9F)
Writing Device Drivers
mnttab(4)

NAME

mnttab - mounted file system table

DESCRIPTION

The file mnttab resides in /etc and contains information about devices that are currently mounted. mnttab is read by programs using the routines described in getmntent(3C). mount (1M)adds entries to this file. umount removes entries from this file. Each entry is a line of fields separated by spaces in the form:
special mount_point fstype options time
where
special
The name of the resource to be mounted.
mount_point
The pathname of the directory on which the filesystem is mounted.
fstype
The file system type of the mounted file system.
options
The mount options.
time
The time at which the file system was mounted.
Examples of entries for the special field include the pathname of a block-special device, the name of a remote filesystem in host:pathname form, or the name of a ``swap file'' (for instance, a file made with mkfile(1M)).

FILES

/etc/mnttab

SEE ALSO

mkfile(1M), mount (1M),setmnt(1M), getmntent(3C)
netconfig(4)

NAME

netconfig - network configuration database

SYNOPSIS

/etc/netconfig

DESCRIPTION

The network configuration database, /etc/netconfig, is a system file used to store information about networks that are connected to the system. The netconfig database and the routines that access it (see getnetconfig(3N)) are part of the Network Selection component. The Network Selection component also includes getnetpath(3N) routines to provide application-specific network search paths. These routines access the netconfig database based on the environment variable NETPATH (see environ(5)).
netconfig contains an entry for each network available on the system. Entries are separated by newlines. Fields are separated by whitespace and occur in the order in which they are described below. Whitespace can be embedded as ``\blank'' or ``\tab''. Backslashes may be embedded as ``\\''. Lines in /etc/netconfig that begin with a # (hash) in column 1 are treated as comments.
Each of the valid lines in the netconfig database correspond to an available transport. Each entry is of the form:
network ID semantics flag protocol-family protocol-name network-device translation-libraries
network ID
A string used to uniquely identify a network. network ID consists of nonnull characters, and has a length of at least 1. No maximum length is specified. This namespace is locally significant and the local system administrator is the naming authority. All network IDs on a system must be unique.
semantics
The semantics field is a string identifying the ``semantics'' of the network, that is, the set of services it supports, by identifying the service interface it provides. The semantics field is mandatory. The following semantics are recognized.
tpi_clts
Transport Provider Interface, connectionless
tpi_cots
Transport Provider Interface, connection oriented
tpi_cots_ord Transport Provider Interface, connection oriented, sup-
ports orderly release.
flag
The flag field records certain two-valued (``true'' and ``false'') attributes of networks. flag is a string composed of a combination of characters, each of which indicates the value of the corresponding attribute. If the character is present, the attribute is ``true.'' If the character is absent, the attribute is ``false.'' ``-'' indicates that none of the attributes are present. Only one character is currently recognized:
v
Visible (``default'') network. Used when the environment
variable NETPATH is unset.
protocol family
The protocol family and protocol name fields are provided for protocol-specific applications.
The protocol family field contains a string that identifies a protocol family. The protocol family identifier follows the same rules as those for network IDs; the string consists of non-null characters, it has a length of at least 1 ,and there is no maximum length specified. A ``--'' in the protocol family field indicates that no protocol family identifier applies (the network is experimental). The following are examples:
loopback
Loopback (local to host).
inet
Internetwork: UDP, TCP, etc.
implink
ARPANET imp addresses
pup
PUP protocols: for example, BSP
chaos
MIT CHAOS protocols
ns
XEROX NS protocols
nbs
NBS protocols
ecma
European Computer Manufacturers Association
datakit
DATAKIT protocols
ccitt
CCITT protocols, X.25, etc.
sna
IBM SNA
decnet
DECNET
dli
Direct data link interface
lat
LAT
hylink
NSC Hyperchannel
appletalk
Apple Talk
nit
Network Interface Tap
ieee802
IEEE 802.2; also ISO 8802
osi
Umbrella for all families used by OSI (for example, pro-
tosw lookup)
x25
CCITT X.25 in particular
osinet
AFI = 47, IDI = 4
gosip
U.S. Government OSI
protocol name The protocol name field contains a string that identifies a protocol. The proto-
col name identifier follows the same rules as those for network IDs; that is, the string consists of non-NULL characters, it has a length of at least 1 ,and there is no maximum length specified. A ``--'' indicates that none of the names listed apply. The following protocol names are recognized.
tcp
Transmission Control Protocol
udp
User Datagram Protocol
icmp
Internet Control Message Protocol
network device
             The network device is the full pathname of the device used to connect to the
             transport provider. Typically, this device will be in the /dev directory. The
             network device must be specified.
translation libraries
The name-to-address translation libraries support a ``directory service'' (a name-to-address mapping service) for the network. A ``--'' in this field indicates the absence of any translation libraries. This has a special meaning for networks of the protocol family inet : its name-to-address mapping is provided by the name service switch based on the entries for hosts and services in nsswitch.conf(4). For networks of other families, a ``--'' indicates non-functional name-to-address mapping. Otherwise, this field consists of a comma-separated list of pathnames to dynamically linked libraries. The pathname of the library can be either absolute or relative. See dlopen(3X).
Each field corresponds to an element in the struct netconfig structure. struct netconfig and the identifiers described on this manual page are defined in <netconfig.h>. This structure includes the following members:
char * nc_netid
Network ID, including NULL terminator.
unsigned long nc_semantics
Semantics.
unsigned long nc_flag
Flags.
char * nc_protofmly
Protocol family.
char * nc_proto
Protocol name.
char * nc_device
Full pathname of the network device.
unsigned long nc_nlookups
Number of directory lookup libraries.
char ** nc_lookups
Names of the name-to-address translation
libraries.
unsigned long nc_unused[9]
Reserved for future expansion.
The nc_semantics field takes the following values, corresponding to the semantics identified above:
      NC_TPI_CLTS
      NC_TPI_COTS
      NC_TPI_COTS_ORD
The nc_flag field is a bitfield. The following bit, corresponding to the attribute identified above, is currently recognized. NC_NOFLAG indicates the absence of any attributes.
NC_VISIBLE

EXAMPLES

Below is a sample netconfig file:
#
# The "Network Configuration" File.
#
# Each entry is of the form:
#
# <network_id> <semantics> <flags> <protofamily> <protoname> <device> \
#     <nametoaddr_libs>
#
# The "-" in <nametoaddr_libs> for inet family transports indicates
# redirection to the name service switch policies for "hosts" and
# "services". The "-" may be replaced by nametoaddr libraries that
# comply with the SVr4 specs, in which case the name service switch
# will not be used for netdir_getbyname, netdir_getbyaddr,
# gethostbyname, gethostbyaddr, getservbyname, and getservbyport.
# There are no nametoaddr_libs for the inet family in Solaris anymore.
#
udp         tpi_clts        v   inet        udp   /dev/udp        -
tcp         tpi_cots_ord    v   inet        tcp   /dev/tcp        -
rawip       tpi_raw         -   inet        -     /dev/rawip      -
ticlts      tpi_clts        v   loopback    -     /dev/ticlts     straddr.so
ticotsord   tpi_cots_ord    v   loopback    -     /dev/ticotsord straddr.so
ticots      tpi_cots        v   loopback    -     /dev/ticots     straddr.so

FILES

<netconfig.h>

SEE ALSO

dlopen(3X), getnetconfig(3N), getnetpath(3N), nsswitch.conf(4)
Network Interfaces Programmer's Guide
File System Administration
netgroup(4)

NAME

netgroup - list of network groups

SYNOPSIS

/etc/netgroup

DESCRIPTION

A netgroup defines a network-wide group of hosts and users.
Netgroups may be used to restrict access to shared NFS filesystems and for restricting remote login and shell access.
Network groups are stored in one of the Network Information Services, either NIS or NIS+, not in a local file.
This manual page describes the format for a file that may be used to supply input to the makedbm(1M) or nisaddent(1M) programs that are use to build the NIS map or NIS+ table, respectively.
Each line of the file defines the name and membership of network group. The line should have the format:
groupname
member ...
The items on a line may be separated by a combination of one or more spaces or tabs.
The groupname is the name of the group being defined. This is followed by a list of members of the group. Each member is either another group name, all of whose members are to be included in the group being defined, or a triple of the form:
(hostname,username,domainname)
In each triple, any of the three fields hostname, username, and domainname, can be empty. An empty field signifies a "wildcard" matching any value in that field. Thus:
everything ( , ,this.domain)
defines a group named "everything" for the domain "this.domain" to which every host and user belongs.
The domainname field refers to the domain in which the triple is valid, not the domain containing the host or user.
Netgroups can be used to control NFS mount access (see share_nfs(1M)) and to control remote login and shell access (see hosts.equiv(4)). They can also be used to control local login access (see passwd(4), shadow(4), and "compat" in nsswitch.conf(4)).
When used for these purposes, a host is considered a member of a netgroup if the netgroup contains any triple in which the hostname field matches the name of the host requesting access and the domainname field matches the domain of the host controlling access.
Similarly, a user is considered a member of a netgroup if the netgroup contains any triple in which the username field matches the name of the user requesting access and the domainname field matches the domain of the host controlling access.
Note that when netgroups are used to control NFS mount access, access is granted depending only on whether the requesting host is a member of the netgroup. Remote login and shell access can be controlled both on the basis of host and user membership in
separate netgroups.

FILES

/etc/netgroup
used by /var/yp/Makefile on NIS masters to build the NIS netgroup map
Note that the netgroup information must always be stored in a network information service, either NIS or NIS+. The local file is only used to construct the netgroup NIS maps or NIS+ table; it is never consulted directly.

SEE ALSO

nis+(1), makedbm(1M), nisaddent(1M), share_nfs(1M), innetgr(3N), hosts.equiv(4), nsswitch.conf(4), passwd(4), shadow(4)

NOTES

Applications may make general membership tests using the innetgr() function (see innetgr(3N)).
Because the "-" character will not match any specific username or hostname, it is commonly used as a placeholder that will match only wildcarded membership queries. So, for example:
onlyhosts
(host1,-,our.domain) (host2,-,our.domain)
onlyusers
(-,john,our.domain) (-,linda,our.domain)
effectively define netgroups containing only hosts and only users, respectively. Any other string that is guaranteed not to be a legal username or hostname will also suffice for this purpose.
When a machine with multiple interfaces and multiple names is defined as a member of a netgroup, one must list all of the names (see hosts(4)). A manageable way to do this is to define a netgroup containing all of the machine names. For example, for a host "gateway" that has names "gateway-subnet1" and "gateway-subnet2" one may define the netgroup:
gateway (gateway-subnet1, ,our.domain) (gateway-subnet2, ,our.domain)
and use this netgroup gateway whenever the host is to be included in another netgroup.
netid(4)

NAME

netid - netname database

SYNOPSIS

/etc/netid

DESCRIPTION

The netid file is a local source of information on mappings between netnames (see secure_rpc(3N)) and user ids or hostnames in the local domain. The netid file can be used in conjunction with, or instead of, the network source: NIS or NIS+. The publickey entry in the nsswitch.conf (see nsswitch.conf(4)) file determines which of these sources will be queried by the system to translate netnames to local user ids or hostnames.
Each entry in the netid file is a single line of the form:
netname
uid: gid,gid, gid . . .
or
netname
0: hostname
The first entry associates a local user id with a netname. The second entry associates a hostname with a netname.
The netid file field descriptions are as follows:
netname
The operating system independent network name for the user or host. netname has one of two formats. The format used to specify a host is of the form:
unix.hostname@domain
where hostname is the name of the host and domain is the network domain name.
The format used to specify a user id is of the form:
unix.uid@domain
where uid is the numerical id of the user and domain is the network domain name.
uid
The numerical id of the user (see passwd(4)). When specifying a host name, uid is always zero.
group
The numerical id of the group the user belongs to (see group(4)). Several groups, separated by commas, may be listed for a single uid.
hostname
The local hostname (see hosts(4)).
Blank lines are ignored. Any part of a line to the right of a `# 'symbol is treated as a comment.

EXAMPLES

Here is a sample netid file:
unix.789@West.Sun.COM                           789:30,65
unix.123@Bldg_xy.Sun.COM                        123:20,1521
unix.candlestick@campus1.bayarea.EDU            0:candlestick

FILES

/etc/group
groups file
/etc/hosts
hosts database
/etc/netid
netname database
/etc/passwd
password file
/etc/publickey
public key database

SEE ALSO

netname2user(3N), group(4), hosts(4), nsswitch.conf(4), passwd(4), publickey(4)
netmasks(4)

NAME

netmasks - network mask database

SYNOPSIS

/etc/inet/netmasks
/etc/netmasks

DESCRIPTION

The netmasks file contains network masks used to implement IP standard subnetting. For each network that is subnetted, a single line should exist in this file with the network number, any number of SPACE or TAB characters, and the network mask to use on that network. Network numbers and masks may be specified in the conventional IP dot (`. ') notation (like IP host addresses, but with zeroes for the host part). For example,
  1. 32.0.0 255.255.255.0

can be used to specify that the Class B network 128.32.0.0 should have eight bits of subnet field and eight bits of host field, in addition to the standard sixteen bits in the network field.

SEE ALSO

ifconfig (1M)
Postel, Jon, and Mogul, Jeff, Internet Standard Subnetting Procedure, RFC 950, Network Information Center, SRI International, Menlo Park, Calif., August 1985.

NOTES

/etc/inet/netmasks is the official SVR4 name of the netmasks file. The symbolic link /etc/netmasks exists for BSD compatibility.
netrc(4)

NAME

netrc - file for ftp remote login data

DESCRIPTION

The .netrc file contains data for logging in to a remote host over the network for file transfers by ftp(1). This file resides in the user's home directory on the machine initiating the file transfer. Its permissions should be set to disallow read access by group and others (see chmod(1)).
The following tokens are recognized; they may be separated by SPACE, TAB, or NEWLINE characters:
machine name
Identify a remote machine name. The auto-login process searches the .netrc file for a machine token that matches the remote machine specified on the ftp command line or as an open command argument. Once a match is made, the subsequent .netrc tokens are processed, stopping when the EOF is reached or another machine token is encountered.
login name
Identify a user on the remote machine. If this token is present, the auto-login process will initiate a login using the specified name.
password string
Supply a password. If this token is present, the auto-login process will supply the specified string if the remote server requires a password as part of the login process. Note: if this token is present in the .netrc file, ftp will abort the autologin process if the .netrc is readable by anyone besides the user.
account string
Supply an additional account password. If this token is present, the auto-login process will supply the specified string if the remote server requires an additional account password, or the auto-login process will initiate an ACCT command if it does not.
macdef name
Define a macro. This token functions the same as ftp macdef. A macro is defined with the specified name; its contents begin with the next .netrc line and continue until a null line (consecutive NEWLINE characters) is encountered. If a macro named init is defined, it is automatically executed as the last step in the auto-login process.

EXAMPLES

A .netrc file containing the following line:
        machine ray login demo password mypassword
allows an autologin to the machine ray using the login name demo with password mypassword.

FILES

~/.netrc

SEE ALSO

chmod(1), ftp(1), in.ftpd(1M)
networks(4)

NAME

networks - network name database
/etc/inet/networks
/etc/networks

DESCRIPTION

The networks file is a local source of information regarding the networks which comprise the Internet. The networks file can be used in conjunction with, or instead of, other networks sources, including the NIS maps networks.byname and networks.byaddr and the NIS+ table networks. Programs use the getnetbyname (3N)routines to access this information.
The network file has a single line for each network, with the following information:
official-network-name
network-number aliases
Items are separated by any number of SPACE and/or TAB characters. A `# 'indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines which search the file. This file is normally created from the official network database maintained at the Network Information Control Center (NIC), though local changes may be required to bring it up to date regarding unofficial aliases and/or unknown networks.
Network numbers may be specified in the conventional dot (`. ') notation using the inet_network routine from the Internet address manipulation library, inet(7). Network names may contain any printable character other than a field delimiter, NEWLINE, or comment character.

SEE ALSO

getnetbyname (3N),inet(3N), nsswitch.conf(4), inet(7)

NOTES

/etc/inet/networks is the official SVR4 name of the networks file. The symbolic link /etc/networks exists for BSD compatibility.
nisfiles(4)

NAME

nisfiles - NIS+ database files and directory structure

SYNOPSIS

/var/nis

DESCRIPTION

The Network Information Service Plus (NIS+) uses a memory based, replicated database. This database uses a set of files in the /var/nis directory for checkpointing to stable storage and for maintaining a transaction log. Additionally, the NIS+ server and client use files in this directory to store binding and state information.
The NIS+ service implements an authentication and authorization system that is built upon Secure RPC. In this implementation, the service uses a table named cred.org_dir.domain-name to store the public and private keys of principals that are authorized to access the NIS+ namespace. It stores group access information in the subdomain groups_dir. domain-nameas group objects. These two tables appear as files in the /var/nis/hostname directory on the NIS+ server.
Unlike the previous versions of the network information service in NIS+, the information in the tables is initially loaded into the service from the ASCII files on the server and then updated using NIS+ utilities (nistbladm -D). Some sites may wish to periodically regenerate the ASCII files for archival purposes. To do this, a script should be added in the crontab(1) of the server that lists these tables and creates the ASCII file from the result.
Note: Except for the NIS_COLDSTART and NIS_SHARED_DIRCACHE file, no other files should be manipulated by commands such as cp(1), mv(1) or rm(1). The transaction log file keeps logs of all changes made, and hence the files cannot be manipulated independently.
The files described below are stored in the /var/nis directory:
NIS_COLDSTART
This file contains NIS+ directory objects that are to be preloaded into the NIS+ cache at startup time. This file is usually created at NIS+ installation time. See nisinit(1M) or nisclient(1M).
NIS_SHARED_DIRCACHE
This file contains the current cache of NIS+ bindings being maintained by the cache manager. The contents can be viewed with nisshowcache(1M).
hostname.log
This file contains a transaction log that is maintained by the NIS+ service. It can be viewed using the nislog(1M) command. This file contains holes. Its apparent size may be a lot higher than its actual size. There is only one transaction log per server.
hostname.dict
This file is a dictionary that is used by the NIS+ database to locate its files. It is created by the default NIS+ database package.
hostname. dict. log
This is the log file for the database dictionary. When the server is checkpointed (nisping -C), this file will be deleted.
hostname
This directory contains databases that the server uses.
hostname/root.object
On root servers, this file contains a directory object that describes the root of the name space.
hostname/parent.object
On root servers, this file contains a directory object that describes the parent namespace. This file is created by the nisinit(1M) command.
hostname/table_name
For each table in the directory there will be a file with the same name that stores the information about that table. If there are subdirectories within this directory, the database for the table is stored in the file table_name. subdirectory.
hostname/table_name.log
This file contains the database log for the table table_name. The log file maintains the state of individual transactions to each database. When a database has been checkpointed (that is, all changes have been made to the hostname/table_name stable storage), this log file will be deleted.
Currently, NIS+ does not automatically do checkpointing. The system administrator may want to do nisping -C (see nisping(1M)) operations periodically (such as, once a day) to checkpoint the log file. This can be done either through a cron (1M)job, or manually.
hostname/root_dir
On root servers, this file stores the database associated with the root directory. It is similar to other table databases. The corresponding log file is called root_dir.log.
hostname/cred.org_dir
This table contains the credentials of principals in this NIS+ domain.
hostname/groups_dir
This table contains the group authorization objects needed by NIS+ to authorize group access.
hostname/serving_list
This file contains a list of all NIS+ directories that are being served by the NIS+ server on this server. When this server is added or deleted from any NIS+ directory object, this file is updated by the server.

SEE ALSO

cp(1), crontab(1), mv(1), rm(1), nis+(1), niscat(1), nismatch(1), nistbladm(1), nisclient(1M), nisinit(1M), nislog(1M), nisping(1M), nis_db(3N), nis_objects(3N)
nsswitch.conf(4)

NAME

nsswitch.conf - configuration file for the name-service switch

SYNOPSIS

/etc/nsswitch.conf

DESCRIPTION

The operating system uses a number of "databases" of information about hosts, users (passwd/shadow), groups and so forth. Data for these can come from a variety of sources: host-names and -addresses, for example, may be found in /etc/hosts, NIS, NIS+ or DNS. One or more sources may be used for each database; the sources and their lookup order are specified in the /etc/nsswitch.conf file.
The following databases use the switch:
Database         Used by
aliases          sendmail(1M)
automount        automount (1M)
bootparams       rpc.bootparamd (1M)
ethers           ethers(3N)
group            getgrnam(3C)
hosts            gethostbyname (3N)
                 (See "Interaction with netconfig" below)
netgroup         innetgr(3N)
netmasks         ifconfig (1M)
networks         getnetbyname (3N)
passwd           getpwnam(3C), getspnam(3C)
protocols        getprotobyname(3N)
publickey        getpublickey(3N), secure_rpc(3N)
rpc              getrpcbyname (3N)
sendmailvars     sendmail(1M)
services         getservbyname(3N)
                 (See "Interaction with netconfig" below)
The following sources may be used:
Source           Uses
files             /etc/hosts, /etc/passwd, /etc/shadow and so forth
nis              NIS (YP)
nisplus          NIS+
dns              Valid only for hosts; uses the Internet Domain Name Service.
compat           Valid only for passwd and group; implements "+" and "-".
                 (See "Interaction with +/- syntax" below)
There is an entry in /etc/nsswitch.conf for each database. Typically these entries will be simple, like "protocols: files" or "networks: files nisplus". However, when multiple sources are specified it is sometimes necessary to define precisely the circumstances under which each source will be tried. A source can return one of the following codes:
Status           Meaning
SUCCESS          Requested database entry was found
UNAVAIL          Source is not responding or corrupted
NOTFOUND
Source responded "no such entry"
TRYAGAIN
Source is busy, might respond to retries
For each status code, two actions are possible:
Action           Meaning
continue         Try the next source in the list
return           Return now
The complete syntax of an entry is
<entry>
::= <database> ":" [<source> [<criteria>]]* <source>
<criteria> ::= "[" <criterion>+ "]"
<criterion> ::= <status> "=" <action>
<status>
::= "success" | "notfound" | "unavail" | "tryagain"
<action>
::= "return" | "continue"
Each entry occupies a single line in the file. Lines that are blank, or that start with white space character are ignored. Everything on a line following a #character is also ignored; the # character can begin anywhere in a line, to be used to begin comments. The <database> and <source> names are case-sensitive, but <action> and <status> names are caseinsensitive.
The library functions contain compiled-in default entries that are used if the appropriate entry in nsswitch.conf is absent or syntactically incorrect.
The default criteria are to continue on anything except SUCCESS; in other words, [SUCCESS=return NOTFOUND=continue UNAVAIL=continue TRYAGAIN=continue].
The default, or explicitly specified, criteria are meaningless following the last source in an entry; and are ignored since the action is always to return to the caller irrespective of the status code the source returns.

Interaction with netconfig

In order to ensure that they all return consistent results, gethostbyname (3N), getservbyname(3N), and netdir_getbyname(3N) functions are all implemented in terms of the same internal library function. This function obtains the system-wide source lookup policy for hosts and services based on the inet family entries in netconfig(4) and uses the switch entries only if the netconfig entries have a "-" in the last column for nametoaddr libraries. See the NOTES section in gethostbyname (3N)and getservbyname(3N) for details.

Interaction with NIS+ YP-

The NIS+ server can be run in "YP-compatibility mode", where it handles NIS (YP) requests as well as NIS+ requests. In this case, the clients get much the same results (except for getspnam(3C)) from the "nis" source as from "nisplus"; however, "nisplus" is recommended instead of "nis".

compatibility Mode

Interaction with NIS (YP) server in DNS-

The NIS (YP) server can be run in "DNS-forwarding mode", where it forwards lookup requests to DNS for host-names and -addresses that do not exist in its database. In this case, specifying "nis" as a source for "hosts" is sufficient to get DNS lookups; "dns" need not be specified explicitly as a source.

forwarding Mode

Since SunOS 5.3, the NIS+ server in "YP-compatibility mode" can also be run in "DNSforwarding mode" (see rpc.nisd(1M)). Forwarding is effective only for requests originating from its YP clients; "hosts" policy on these clients should be configured appropriately.

Interaction with +/-syntax

Releases prior to SunOS 5.0 did not have the name-service switch but did allow the user some policy control. In /etc/passwd one could have entries of the form +user (include the specified user from NIS passwd.byname), -user (exclude the specified user) and + (include everything, except excluded users, from NIS passwd.byname). The desired behavior was often "everything in the file followed by everything in NIS", expressed by a solitary + at the end of /etc/passwd. The switch provides an alternative for this case ("passwd: files nis") that does not require + entries in /etc/passwd and /etc/shadow (the latter is a new addition to SunOS 5.0, see shadow(4)).
If this is not sufficient, the "compat" source provides full +/- semantics. It reads /etc/passwd for getpwnam(3C) functions and /etc/shadow for getspnam(3C) functions and, if it finds +/- entries, invokes an appropriate source. By default the source is "nis", but this may be overridden by specifying "nisplus" as the source for the pseudo-database
passwd_compat.
Note that for every /etc/passwd entry, there should be a corresponding entry in the /etc/shadow file.
The compat source also provides full +/- semantics for group; the relevant pseudodatabase is group_compat.

Useful Configurations

The compiled-in default entries for all databases use NIS (YP) as the enterprise level name-service and are identical to those in the default configuration of this file:
passwd:
files nis
group:
files nis
hosts:
nis [NOTFOUND=return] files
networks:
nis [NOTFOUND=return] files
protocols:
nis [NOTFOUND=return] files
rpc:
nis [NOTFOUND=return] files
ethers:
nis [NOTFOUND=return] files
netmasks:
nis [NOTFOUND=return] files
bootparams:
nis [NOTFOUND=return] files
publickey:
nis [NOTFOUND=return] files
netgroup:
nis
automount:
files nis
aliases:
files nis
services:
files nis
sendmailvars:
files
The policy "nis [NOTFOUND=return] files" implies "if nis is UNAVAIL, continue on to files, and if nis returns NOTFOUND, return to the caller; in other words, treat nis as the authoritative source of information and try files only if nis is down." This, and other policies listed in the default configuration above, are identical to the hard-wired policies in
SunOS releases prior to 5.0.
If compatibility with the +/- syntax for passwd and group is required, simply modify the entries for passwd and group to:
passwd:
compat
group:
compat
If NIS+ is the enterprise level name-service, the default configuration should be modified to use nisplus instead of nis for every database on client machines. The file /etc/nsswitch.nisplus contains a sample configuration that can be copied to /etc/nsswitch.conf to set this policy.
If the use of +/- syntax is desired in conjunction with nisplus, use the following four entries:
passwd:
compat
passwd_compat: nisplus
group:
compat
group_compat:
nisplus
In order to get information from the Internet Domain Name Service for hosts that are not listed in the enterprise level name-service, NIS+, use the following configuration and set up the /etc/resolv.conf file (see resolv.conf(4) for more details):
hosts:
nisplus dns [NOTFOUND=return] files

Enumeration --getXXXent( )

Many of the databases have enumeration functions: passwd has getpwent( ), hosts has gethostent( ), and so on. These were reasonable when the only source was files but often make little sense for hierarchically structured sources that contain large numbers of entries, much less for multiple sources. The interfaces are still provided and the implementations strive to provide reasonable results, but the data returned may be incomplete (enumeration for hosts is simply not supported by the dns source), inconsistent (if multiple sources are used), formatted in an unexpected fashion (for a host with a canonical name and three aliases, the nisplus source will return four hostents, and they may not be consecutive), or very expensive (enumerating a passwd database of 5000 users is probably a bad idea). Furthermore, multiple threads in the same process using the same reentrant enumeration function ( getXXXent_r() are supported beginning with SunOS 5.3) share the same enumeration position; if they interleave calls, they will enumerate disjoint subsets of the same database.
In general the use of the enumeration functions is deprecated. In the case of passwd, shadow and group, it may sometimes be appropriate to use fgetgrent( ), fgetpwent( ) and fgetspent( ) (see getgrnam(3C), getpwnam(3C), and getspnam(3C), respectively), which use only the files source.

FILES

A source named SSS is implemented by a shared object named nss_SSS.so.1 that resides in /usr/lib.
/etc/nsswitch.conf
configuration file
/usr/lib/nss_compat.so.1
implements "compat" source
/usr/lib/nss_dns.so.1
implements "dns" source
/usr/lib/nss_files.so.1
implements "files" source
/usr/lib/nss_nis.so.1
implements "nis" source
/usr/lib/nss_nisplus.so.1
implements "nisplus" source
/etc/netconfig
configuration file for netdir(3N) functions that redirects
hosts/sevices policy to the switch
/etc/nsswitch.files
sample configuration file that uses "files" only
/etc/nsswitch.nis
sample configuration file that uses "files" and "nis"
/etc/nsswitch.nisplus
sample configuration file that uses "files" and "nisplus"

SEE ALSO

nis+(1), automount (1M),ifconfig (1M),rpc.bootparamd (1M),rpc.nisd(1M), sendmail(1M), getgrnam(3C), getpwnam(3C), getspnam(3C), ethers(3N), gethostbyname (3N),getnetbyname (3N),getnetgrent(3N), getprotobyname(3N), getpublickey(3N), getrpcbyname (3N),getservbyname(3N), netdir(3N), secure_rpc(3N), netconfig(4), resolv.conf(4), ypfiles(4)

NOTES

Within each process that uses nsswitch.conf, the entire file is read only once; if the file is later changed, the process will continue using the old configuration.
Programs that use the getXXbyYY() functions cannot be linked statically since the implementation of these functions requires dynamic linker functionality to access the shared objects /usr/lib/nss_SSS.so.1 at run time.
The use of both nis and nisplus as sources for the same database is strongly discouraged since both the name-services are expected to store similar information and the lookups on the database may yield different results depending on which name-service is operational at the time of the request.
Misspelled names of sources and databases will be treated as legitimate names of (most likely nonexistent) sources and databases.
The following functions do not use the switch: fgetgrent(3C), fgetpwent(3C), fgetspent(3C), getpw(3C), putpwent(3C).
order(4)

NAME

order - package installation order description file

DESCRIPTION

The package installation order file, .order, is an ASCII file specifying the order in which packages must be installed based on their prerequisite dependencies. Any package with prerequisite dependencies must be installed after any packages it lists as a prerequisite dependency in its depend file.
A .order file is required for the OS product. The .order file must reside in the top-level directory containing the product.
The ordering is specified as a list of package identifiers, from the first package to be installed to the last, one package identifier per line.

NOTES

The depend file supports incompatible and reverse dependencies. These dependency types are not recognized in the order file.

SEE ALSO

cdtoc(4), clustertoc(4), depend(4), packagetoc(4), pkginfo(4)
ott(4)

NAME

ott, .ott - FACE object architecture information

DESCRIPTION

The FACE object architecture stores information about object-types in an ASCII file named .ott (object type table) that is contained in each directory. This file describes all of the objects in that directory. Each line of the .ott file contains information about one object in pipe-separated fields. The fields are (in order):
name
the name of the actual system file.
dname
the name that should be displayed to the user, or a dot if it is the same as the name of the file.
description
the description of the object, or a dot if the description is the default (the same as object-type).
object-type
the FACE internal object type name.
flags
object specific flags.
mod time
the time that FACE last modified the object. The time is given as number of seconds since 1/1/1970, and is in hexadecimal notation.
object information
an optional field, contains a set of semi-colon separated name=value fields that can be used by FACE to store any other information necessary to describe this object.

FILES

.ott is created in any directory opened by FACE.
packagetoc(4)

NAME

packagetoc - package table of contents description file

DESCRIPTION

The package table of contents file, .packagetoc, is an ASCII file containing all of the information necessary for installing a product release distributed in package form. It centralizes and summarizes all of the relevant information about each package in the product. This allows the install software to quickly read one file to obtain all of the relevant information about each package instead of having to examine each package at run time to obtain this information. The .packagetoc file resides in the top-level directory containing the product.
If a .packagetoc file exists for a product, there must also be a .order file.
Each entry in the .packagetoc file is a line that establishes the value of a parameter in the following form:
PARAM =value
A line starting with a pound-sign, ``#'', is considered a comment and is ignored.
Parameters are grouped by package. The start of a package description is defined by a line of the form:
PKG =value
There is no order implied or assumed for specifying the parameters for a package with the exception of the PKG parameter, which must appear first. Only one occurrence of a parameter is permitted per package.
The parameters recognized are described below. Those marked with an asterisk are mandatory.
PKG *
The package identifier (for example, SUNWaccu). The maximum length of the identifier is nine characters. All the characters must be alphanumeric. The first character must be alphabetic. install, new, and all are reserved identifiers.
PKGDIR *
The name of the directory containing the package. This directory is relative to the directory containing the product.
NAME *
The full name of the package.
VENDOR
The name of the package's vendor.
VERSION
The version of the package.
PRODNAME
The name of the product to which this package belongs.
PRODVERS
The version of the product to which this package belongs.
SUNW_PKGTYPE
The package type. Valid values are:
root
indicates that the package will be installed in the / file system. The root packages are the only packages installed during
dataless client installations. The root packages are spooled
during a server installation to allow the later installation of
diskless clients.
usr
indicates that the package will be installed in the /usr file
system.
kvm
indicates that the package will be installed in the /usr/kvm file system.
ow
indicates a package that is part of the bundled OpenWindows product release. If no SUNW_PKGTYPE macro is present, the package is assumed to be of type usr.
ARCH *
The architecture(s) supported by the package. This macro is taken from the package's pkginfo(4) file and is subject to the same length and formatting constraints.
The install program currently assumes that exactly one architecture token is specified for a package. For example, ARCH=sparc.sun4c is acceptable, but ARCH=sparc.sun4c, sparc.sun4m is not.
DESC
A detailed textual description of the package.
BASEDIR *
The default installation base directory of the package.
SUNW_PDEPEND
A dependency specification for a prerequisite package. Each prerequisite dependency must appear as a separate macro. See depend(4) for more information on dependencies and instance specifications.
SUNW_IDEPEND
A dependency specification for an incompatible package. Each incompatible dependency should appear as a separate macro. See depend(4) for more information on dependencies and instance specifications.
SUNW_RDEPEND
A dependency specification for a reversed package dependency. Each reverse dependency should appear as a separate macro. See depend(4) for more information on dependencies and instance specifications.
CATEGORY
The category of the package.
SUNW_LOC
Indicates that this package contains localizations for other packages. Such localization packages are treated as special case packages. Each package which has a SUNW_LOC macro must have a corresponding SUNW_PKGLIST macro. The value specified by this macro should be a valid locale.
SUNW_PKGLIST
A comma separate list of package identifiers. Currently this macro is used to indicate which packages are localized by a localization package.
ROOTSIZE *
The space used by the package in the / file system.
USRSIZE *
The space used by the package in the /usr subtree of the file system.
VARSIZE *
The space used by the package in the /var subtree of the file system.
OPTSIZE *
The space used by the package in the /opt subtree of the file system.
EXPORTSIZE *
The space used by the package in the /export subtree of the file system.
USROWNSIZE *
The space used by the package in the /usr/openwin subtree of the file
system.
SPOOLED_SIZE *
The space used by the spooled version of this package. This is used during the setup of a server by the initial system installation programs.
All sizes are specified in bytes. Default disk partitions and file system sizes are derived from the values provided: accuracy is important.

EXAMPLES

The following is an example package entry in a .packagetoc file.
#ident "@(#)packagetoc.4 1.2 92/04/28"
PKG=SUNWaccr
PKGDIR=SUNWaccr
NAME=System Accounting, (Root)
VENDOR=Sun Microsystems, Inc.
VERSION=8.1
PRODNAME=SunOS
PRODVERS=5.0beta2
SUNW_PKGTYPE=root
ARCH=sparc
DESC=System Accounting, (Root)
BASEDIR=/
CATEGORY=system
ROOTSIZE= 11264
VARSIZE= 15360
OPTSIZE= 0
EXPORTSIZE= 0
USRSIZE= 0
USROWNSIZE= 0

SEE ALSO

cdtoc(4), clustertoc(4), depend(4), order(4), pkginfo(4), pkgmap(4)

NOTES

The parameters NAME ,VENDOR ,VERSION ,PRODNAME ,PRODVERS ,SUNW_PKGTYPE , SUNW_LOC ,SUNW_PKGLIST ,ARCH ,DESC ,BASEDIR ,and CATEGORY are assumed to have been taken directly from the package's pkginfo(4) file. The length and formatting restrictions placed on the values for these parameters are identical to those for the corresponding entries in the pkginfo(4) file.
The value specified for the parameter PKGDIR should not exceed 255 characters.
The value specified for the parameters ROOTSIZE ,VARSIZE ,OPTSIZE ,EXPORTSIZE , USRSIZE and USROWNSIZE must be a single integer value. The values can be derived from the package's pkgmap file by counting all space consumed by any files installed in the applicable file system. The space includes that used for directory entries and any UFS overhead that exists because of the way the files are represented (directory allocation scheme; direct, indirect, double indirect blocks; fragments; etc.)
The following kinds of entries in the pkgmap(4) file should be included in the space derivation:
f
regular file
c
character special file
b
block special file
p
pipe
l
hard link
s
symbolic link
x, d
directory
i
packaging installation script or information file (copyright, depend, postinstall, postremove)
passwd(4)

NAME

passwd - password file

SYNOPSIS

/etc/passwd

DESCRIPTION

/etc/passwd is a local source of information about users' accounts. The password file can be used in conjunction with other password sources, including the NIS maps passwd.byname and passwd.bygid and the NIS+ table passwd. Programs use the getpwnam(3C) routines to access this information.
Each passwd entry is a single line of the form:
username: password: uid: gid: gcos-field: home-dir: login-shell
where
username
is the user's login name. This field contains no uppercase characters, and must not be more than eight characters in length.
password
is an empty field; The encrypted password for the user is in the corresponding entry in the /etc/shadow file. pwconv(1M) relies on a special value of 'x 'in the password field of /etc/passwd. If this value of 'x 'exists in the password field of /etc/passwd, this indicates that the password for the user is already in /etc/shadow and should not be modified.
uid
is the user's unique numerical ID for the system.
gid
is the unique numerical ID of the group that the user belongs to.
gcos-field
is the user's real name, along with information to pass along in a mail-message heading. (It is called the gcos-field for historical reasons.) A ``&'' (ampersand) in this field stands for the login name (in cases where the login name appears in a user's real name).
home-dir
is the pathname to the directory in which the user is initially positioned upon logging in.
login-shell
is the user's initial shell program. If this field is empty, the default shell is /usr/bin/sh.
The password file is an ASCII file. Because the encrypted passwords are always kept in the shadow file, /etc/passwd has general read permission on all systems, and can be used by routines that map between numerical user IDs and user names.
Previous releases used a password entry beginning with a `+' (plus sign) or `-' (minus sign) to selectively incorporate entries from NIS maps for password. If still required, this is supported by specifying ``passwd : compat'' in nsswitch.conf(4). The ``compat'' source may not be supported in future releases. The preferred sources are, ``files'' followed by ``nisplus''. This has the effect of incorporating the entire contents of the NIS+ passwd table after the password file.

EXAMPLES

Here is a sample passwd file:
     root:q.mJzTnu8icF.:0:10:God:/:/bin/csh
     fred:6k/7KCFRPNVXg:508:10:% Fredericks:/usr2/fred:/bin/csh
and the sample password entry from nsswitch.conf:
passwd: files nisplus
In this example, there are specific entries for users root and fred to assure that they can login even when the system is running single-user. In addition, anyone in the NIS+ table passwd will be able to login with their usual password, shell and home directory.
If the password file is:
root:q.mJzTnu8icF.:0:10:God:/:/bin/csh
fred:6k/7KCFRPNVXg:508:10:% Fredericks:/usr2/fred:/bin/csh
+
and the password entry from nsswitch.conf:
passwd: compat
all the entries listed in the NIS passwd.byuid and passwd.byname maps will be effectively incorporated after the entries for root and fred.

FILES

/etc/nsswitch.conf
/etc/passwd
/etc/shadow

SEE ALSO

chgrp(1), chown(1), groups(1), login(1), makekey(1), nispasswd(1), passwd(1), sh(1), sort(1), chown(1M), domainname (1M),getent(1M), in.ftpd(1M), newgrp (1M), passmgmt(1M), pwck(1M), pwconv(1M), su(1M), useradd(1M), userdel(1M), usermod (1M),a64l(3C), crypt(3C), getpw(3C), getpwnam(3C), getspnam(3C), putpwent(3C), group(4), hosts.equiv(4), nsswitch.conf(4), shadow(4), unistd(4), environ(5)
path_to_inst(4)

NAME

path_to_inst - device instance number file

SYNOPSIS

/etc/path_to_inst

DESCRIPTION

/etc/path_to_inst records mappings of physical device names to instance numbers.
The instance number of a device is encoded in its minor number, and is the way that a device driver determines which of the possible devices that it may drive is referred to by a given special file.
In order to keep instance numbers persistent across reboots, the system records them in /etc/path_to_inst.
This file is read only at boot time, and is updated by add_drv(1M) and drvconfig(1M).
Note that it is generally not necessary for the system administrator to change this file, as the system will maintain it.
The system administrator can change the assignment of instance numbers by editing this file and doing a reconfiguration reboot. However, any changes made in this file will be lost if add_drv(1M) or drvconfig(1M) is run before the system is rebooted.
Each instance entry is a single line of the form:
"physical name" instance number
where
physical name
is the physical pathname of a device. This pathname must be enclosed in " characters and start with /.
instance number is a decimal or hexadecimal number.

EXAMPLES

Here are some sample path_to_inst entries for a sun4c:
"/fd@1,f7200000" 0
"/audio@1,f7201000" 0
"/sbus@1,f8000000/esp@0,800000/sd@0,0" 0x0
"/sbus@1,f8000000/esp@0,800000/sd@1,0" 0x1
"/sbus@1,f8000000/esp@0,800000/sd@2,0" 0x2
"/sbus@1,f8000000/esp@0,800000/sd@3,0" 0x3
"/sbus@1,f8000000/le@0,c00000" 0

FILES

/etc/path_to_inst

SEE ALSO

add_drv(1M), boot(1M), drvconfig(1M), mknod(1M)

WARNING

If the file is removed the system may not be bootable (as it may rely on information found in this file to find the root, usr or swap device).If it does successfully boot it will regenerate the file, but after rebooting devices may end up having different minor numbers than they did before, and special files created via mknod(1M) may refer to different devices than expected.
For the same reasons, changes should not be made to this file without careful consideration.

NOTES

This document does not constitute an API. path_to_inst may not exist or may have a different content or interpretation in a future release. The existence of this notice does not imply that any other documentation that lacks this notice constitutes an API.
pathalias(4)

NAME

pathalias - alias file for FACE

SYNOPSIS

/usr/vmsys/pathalias

DESCRIPTION

The pathalias files contain lines of the form alias=path where path can be one or more colon-separated directories. Whenever a FACE (Framed Access Command Environment, see face(1)) user references a path not beginning with a ``/'', this file is checked. If the first component of the pathname matches the left-hand side of the equals sign, the right-hand side is searched much like $PATH variable in the system. This allows users to reference the folder $HOME/FILECABINET by typing filecabinet.
There is a system-wide pathalias file called $VMSYS/pathalias, and each user can also have local alias file called $HOME/pref/pathalias. Settings in the user alias file override settings in the system-wide file. The system-wide file is shipped with several standard FACE aliases, such as filecabinet, wastebasket, preferences, other_users, etc.

FILES

$HOME/pref/pathalias
$VMSYS/pathalias

SEE ALSO

face(1)

NOTES

Unlike command keywords, partial matching of a path alias is not permitted, however, path aliases are case insensitive. The name of an alias should be alphabetic, and in no case can it contain special characters like ``/'', ``\'', or ``=''. There is no particular limit on the number of aliases allowed. Alias files are read once, at login, and are held in core until logout. Thus, if an alias file is modified during a session, the change will not take effect until the next session.
phones(4)

NAME

phones - remote host phone number database

SYNOPSIS

/etc/phones

DESCRIPTION

The file /etc/phones contains the system-wide private phone numbers for the tip(1) program. /etc/phones is normally unreadable, and so may contain privileged information. The format of /etc/phones is a series of lines of the form:
<system-name>[ \t]* <phone-number>.
The system name is one of those defined in the remote(4) file and the phone number is constructed from [0123456789-=* %]. The `=' and `* 'characters are indicators to the auto call units to pause and wait for a second dial tone (when going through an exchange). The `=' is required by the DF02-AC and the `* 'is required by the BIZCOMP 1030.
Comment lines are lines containing a `# 'sign in the first column of the line.
Only one phone number per line is permitted. However, if more than one line in the file contains the same system name tip(1) will attempt to dial each one in turn, until it establishes a connection.

FILES

/etc/phones

SEE ALSO

tip(1), remote(4)
pkginfo(4)

NAME

pkginfo - package characteristics file

DESCRIPTION

pkginfo is an ASCII file that describes the characteristics of the package along with information that helps control the flow of installation. It is created by the software package developer.
Each entry in the pkginfo file is a line that establishes the value of a parameter in the following form:
PARAM="value"
There is no required order in which the parameters must be specified within the file. Each parameter is described below. Only fields marked with an asterisk are mandatory.
PKG *
Abbreviation for the package being installed, generally three characters in length (for example, dir or pkg). All characters in the abbreviation must be alphanumeric and the first may not be numeric. The abbreviation is limited to a maximum length of nine characters. install, new, and all are reserved abbreviations.
NAME*
Text that specifies the package name (maximum length of 256 ASCII characters).
ARCH*
A comma-separated list of alphanumeric tokens that indicate the architecture associated with the package. The pkgmk(1) tool may be used to create or modify this value when actually building the package. The maximum length of a token is 16 characters and it cannot include a comma.
VERSION*
Text that specifies the current version associated with the software package. The maximum length is 256 ASCII characters and the first character cannot be a left parenthesis. The pkgmk(1) tool may be used to create or modify this value when actually building the package.
CATEGORY*
A comma-separated list of categories under which a package may be displayed. A package must at least belong to the system or application category. Categories are case-insensitive and may contain only alphanumerics. Each category is limited in length to 16 characters.
DESC
Text that describes the package (maximum length of 256 ASCII characters).
VENDOR
Used to identify the vendor that holds the software copyright (maximum length of 256 ASCII characters).
HOTLINE
Phone number and/or mailing address where further information may be received or bugs may be reported (maximum length of 256 ASCII characters).
EMAIL
An electronic address where further information is available or bugs may be reported (maximum length of 256 ASCII characters).
VSTOCK
The vendor stock number, if any, that identifies this product (maximum length of 256 ASCII characters).
CLASSES
A space-separated list of classes defined for a package. The order of the list determines the order in which the classes are installed. Classes listed first will be installed first (on a media by media basis). This parameter may be modified by the request script.
ISTATES
A list of allowable run states for package installation (for example, "S s 1").
RSTATES
A list of allowable run states for package removal (for example, "S s 1").
BASEDIR
The pathname to a default directory where ``relocatable'' files may be installed. If blank, the package is not relocatable and any files that have relative pathnames will not be installed. An administrator can override the default directory.
ULIMIT
If set, this parameter is passed as an argument to the ulimit command, which establishes the maximum size of a file during installation.
ORDER
A list of classes defining the order in which they should be put on the medium. Used by pkgmk(1) in creating the package. Classes not defined in this field are placed on the medium using the standard ordering procedures.
MAXINST
The maximum number of package instances that should be allowed on a machine at the same time. By default, only one instance of a package is allowed. This parameter must be set in order to have multiple instances of a package.
PSTAMP
Production stamp used to mark the pkgmap(4) file on the output volumes. Provides a means for distinguishing between production copies of a version if more than one is in use at a time. If PSTAMP is not defined, the default is used. The default consists of the UNIX system machine name followed by the string "YYMMDDHHMM" (year, month, date, hour, minutes).
INTONLY
Indicates that the package should only be installed interactively when set to any non-NULL value.

EXAMPLES

Here is a sample pkginfo:
PKG="oam"
NAME="OAM Installation Utilities"
VERSION="3"
VENDOR="AT&T"
HOTLINE="1-800-ATT-BUGS"
EMAIL="attunix!olsen"
VSTOCK="0122c3f5566"
CATEGORY="system.essential"
ISTATES="S 2"
RSTATES="S 2"

SEE ALSO

pkgmap(4), pkgmk(1)

NOTES

Developers may define their own installation parameters by adding a definition to this file. A developer-defined parameter must begin with a capital letter.
pkgmap(4)

NAME

pkgmap - package contents description file

DESCRIPTION

pkgmap is an ASCII file that provides a complete listing of the package contents. It is automatically generated by pkgmk(1) using the information in the prototype file.
Each entry in pkgmap describes a single ``deliverable object file.'' A deliverable object file includes shell scripts, executable objects, data files, directories, etc. The entry consists of several fields of information, each field separated by a space. The fields are described below and must appear in the order shown.
part
An optional field designating the part number in which the object resides. A part is a collection of files, and is the atomic unit by which a package is processed. A developer can choose the criteria for grouping files into a part (for example, based on class). If no value is defined in this field, part 1 is assumed.
ftype
A one-character field that indicates the file type. Valid values are:
f
a standard executable or data file
e
a file to be edited upon installation or removal
v
volatile file (one whose contents are expected to change)
d
directory
x
an exclusive directory
l
linked file
p
named pipe
c
character special device
b
block special device
i
installation script or information file
s
symbolic link
class
The installation class to which the file belongs. This name must contain only alphanumeric characters and be no longer than 12 characters. It is not specified if the ftype is i (information file).
pathname
pathname may contain variables that support install-time configuration of the file. A $parameter may be embedded in the pathname structure. Default values for parameter must be available in the environment during installation. The recommended method for setting such parameters is to supply them in the pkginfo file. Do not use the following reserved words in the pkgmap path, since they are applied by pkgadd using a different mechanism:
PKG_INSTALL_ROOT
BASEDIR
CLIENT_BASEDIR
major
The major device number. The field is only specified for block or character special devices.
minor
The minor device number. The field is only specified for block or character special devices.
mode
The octal mode of the file (for example, 0664). A question mark (?) indicates that the mode will be left unchanged, implying that the file already exists on
the target machine. This field is not used for linked files, packaging information files or non-installable files.
owner
The owner of the file (for example, bin or root). The field is limited to 14 characters in length. A question mark (?) indicates that the owner will be left unchanged, implying that the file already exists on the target machine. This field is not used for linked files